System and method for energy efficient geofencing implementation and management

ABSTRACT

A determination is made as to whether a computing device is located inside a first geofence of a geofence environment. A first location determination mode available to the computing device for determining a location of the computing device is identified. A second location determination mode available to the computing device for determining a location of the computing device is identified, wherein the second location determination mode consumes less power than the first location determination mode. A selection is made between the first location determination mode and the second location determination mode, based on the determination of whether the computing device is located inside the first geofence. A next location of the computing device is determined using the selected location determination mode, a next location of the computing device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 15/708,288,filed Sep. 19, 2017, which is hereby incorporated by reference in itsentirety.

BACKGROUND

The prevalence of global positioning systems (GPS) and other types oflocation determination systems in mobile devices (e.g., cell phones,tablets, etc.) has allowed for the creation of so-called “geofences.” Ageofence may be a virtual fence drawn on a map and enforced using theGPS capabilities of a mobile device. Using a location determinationsystem such as GPS, the location of a mobile device may be determinedand then compared to the location of the virtual fence, and thatcomparison may result in a determination of whether the mobile device isinside of, or outside of, the virtual fence.

Battery power is used in determining the location of a user's mobiledevice (and thus the user) in a geofence environment. However, alocation determination operation performed by the mobile device mayconsume a large amount of battery power of the mobile device, and mayresult in a need to recharge the mobile device fairly often, which isburdensome for the user. There remains an ever-present need forimproving the energy efficiency of such geofence systems.

SUMMARY

This summary is not intended to identify critical or essential featuresof the disclosures herein, but instead merely summarizes certainfeatures and variations thereof. Other details and features will also bedescribed in the sections that follow.

A user device may be configured to use a variety of different approachesto determining its location. Some approaches may require a lot ofbattery power, and may be very accurate (e.g., using satellite GPSinformation, and/or recalculating every second), while other approachesmay require less power and may be less accurate (e.g., using onlycellular telephone tower location services, and/or recalculatinglocation only once per minute). In some systems described herein, asingle geofence may be defined based on its border on a map, and one ormore additional ranges can be defined based on proximity to the border.The user device may be configured to use a less accurate/more energyefficient location determination technique when the user device isoutside the geofence border, and when the user device crosses thegeofence border, the user device may switch to using a moreaccurate/less energy efficient location determination technique, untilthe user device arrives at a target area (e.g., the user's home),whereby a more energy efficient location determination technique mayagain be used.

A method described herein may comprise determining a location of a userdevice in a geofence environment. The user may define a geofenceboundary that surrounds a target area, and the mobile device may usedifferent types of location determination techniques based on whetherthe mobile device is inside of, or outside of, the geofence boundary.

The geofence environment may include a first geofence that surrounds atarget area. When the user device is determined to be located outsidethe first geofence, a next location determination of the user device isperformed using a first location determination mode. When the userdevice is determined to be located inside the first geofence but outsidethe target area, the next location determination of the user device isperformed using a second location determination mode that uses a greateramount of battery resources of the user device than the first locationdetermination mode.

In some embodiments, the second location determination mode is similarto the first location determination mode (e.g., both use GPS signals todetermine location), except that the second location determination modeperforms a faster rate of polling and thus performs a faster nextlocation determination than the first location determination mode,whereby each separate polling and location determination operation takesup a certain amount of battery power of the user device.

In some embodiments, when the user device is determined to be locatedinside the target area, the next location determination of the userdevice is performed using a location determination mode that uses alesser amount of battery resources of the user device than when the userdevice is located outside the target area.

In some embodiments, the location determination mode used when the userdevice is located in the target area is similar to the locationdetermination mode used when the user device is outside the target area,except that a slower rate of polling is performed.

In some embodiments, the location of the user device is determined usinglocation signals. The determining the location of the user device maycomprise receiving, by a server communicatively connected to the userdevice, location signals sent by the user device based on one of thefirst or second location determination modes performed by the userdevice. The determining may further comprise calculating a currentposition of the user device based on the received location signals. Thedetermining may also comprise comparing the calculated position of theuser with location information associated with the first geofence. Thedetermining may further comprise determining, based on the comparing,whether the user device is located inside the first geofence or outsidethe first geofence.

In some embodiments, the location signals comprise WiFi signals providedby a WiFi network to determine location of the user device.

In some embodiments, the location signals comprise cellular signalsoutput by cell towers of a cellular network to determine location of theuser device.

In some embodiments, the second location determination mode polls forGPS signals to determine location of the user device, and utilizes morepower resources of the user device than the first location determinationmode, whereby the GPS signals provide a greater level of accuracy ascompared to the first location determination mode

In some embodiments, a determination is made as to whether the userdevice has crossed from outside of to inside of the first geofence, andif so, an operation is performed at the target area based on thecrossing. The operation may include a turning on an air conditioningsystem of a home located in the target area, or opening a garage door ofthe home.

In some embodiments, a determination is made as to whether the userdevice has crossed from inside of to outside of the first geofence, andif so, an operation is performed at the target area based on thecrossing. The operation may include, for example, a turning down orturning off an air conditioning system of a home located in the targetarea, or closing a garage door of the home. In some embodiments, speedis used as a criterion for determining which location determination modeto use. The second location determination mode may poll for GPS signalsoutput by GPS satellites to determine location of the user device whenthe user device is moving at a rate of speed greater than apredetermined rate of speed, and the location determination mode maypoll for WiFi signals output by a WiFi network to determine location ofthe user device when the user device is moving at a rate of speed lessthan or equal to the predetermined rate of speed.

In some embodiments, an amount of time spent in a particular geofenceregion is used as a criterion for determining which locationdetermination mode to use, since the longer a user spends in aparticular geofence region, the less likely the user will be moving outof that geofence region in the near future, and thus the less frequentthe next location determination mode is to be performed. For example,for a GPS location determination mode, the GPS polling frequency may belessened if the user has been determined to be located within aparticular geofence region for at least a particular amount of time(e.g., more than 2 hours) in a geofence region that is located betweenan inner geofence and an outer geofence.

In some embodiments, there may be provided various concentric geofences,and various intermediate ranges at which different locationdetermination modes may be used based on the location of a user devicewith respect to the geofences. When the user device is determined to belocated outside a first geofence that surrounds a target area, a nextlocation determination of the user device is performed using a firstlocation determination mode. When the user device is determined to belocated inside the first geofence but outside of a second geofence thatis closer to the target area than the first geofence, the next locationdetermination of the user device is performed using a second locationdetermination mode that uses a greater amount of battery resources ofthe user device than the first location determination mode. When theuser device is determined to be located inside of the second geofencebut outside of the target area, the next location determination of theuser device is performed using a third location determination mode thatuses a greater amount of battery resources of the user device than thesecond location determination mode. This is based on the principle thatthe closer a user is currently located with respect to a target area,the more accurate and the more quicker the location determination shouldbe performed, since typically the number of operations to be performedwith respect to the target area (e.g., open a garage door, turn on aHVAC system in the user's home) increase as the user gets closer to thetarget area. As an example, the second geofence surrounds an areacorresponding to the user's home (the “target area”) and front and backyards adjacent to the user's home, and the first geofence surrounds a ¼mile circular region centered on the user's home and that includes theuser's home, the user's front and back yards, and neighboring areas.

The foregoing methods and other methods described herein may beperformed by a system, a computing device, a computer readable mediumstoring computer-executable instructions for performing the methods,and/or an apparatus having a processor and memory storingcomputer-executable instructions for performing the methods.

BRIEF DESCRIPTION OF THE DRAWINGS

Some features herein are illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements.

FIG. 1 illustrates an example information access and distributionnetwork.

FIG. 2 illustrates an example hardware and software platform on whichvarious elements described herein can be implemented.

FIG. 3A illustrates an example summary of a method of performing actionsbased on a user's location according to one or more illustrative aspectsof the disclosure.

FIG. 3B illustrates an example geofence environment according to one ormore illustrative aspects of the disclosure.

FIG. 4 illustrates an example network of devices used to determineusers' locations and corresponding actions based on users' locationsaccording to one or more illustrative aspects of the disclosure.

FIG. 5 illustrates an example method of generating and storing a userprofile according to one or more illustrative aspects of the disclosure.

FIG. 6 illustrates an example interconnection of users' serviceaccounts, locations, telephone numbers, and device identifiers accordingto one or more illustrative aspects of the disclosure.

FIG. 7 illustrates an example method of determining a user's locationwith respect to a geofence environment according to one or moreillustrative aspects of the disclosure.

FIG. 8 illustrates example user profiles that correlate users' locationsto automated actions according to one or more illustrative aspects ofthe disclosure.

FIG. 9A illustrates an example user interface for enabling a user to setup a geofence environment according to one or more illustrative aspectsof the disclosure.

FIG. 9B illustrates an example user interface for providing a user withgeofence notifications according to one or more illustrative aspects ofthe disclosure.

FIG. 9C illustrates an example map user interface for enabling a user toset up a geofence environment according to one or more illustrativeaspects of the disclosure.

FIG. 10 illustrates an example method of changing location determinationmodes with respect to geofence regions in a geofence environmentaccording to one or more illustrative aspects of the disclosure.

FIG. 11 illustrates an example method of using a particular locationdetermination scheme based on whether a user device is arriving to auser's home within a geofence environment, going away from the user'shome, or dwelling within the user's home, according to one or moreillustrative aspects of the disclosure.

DETAILED DESCRIPTION

FIG. 1 illustrates an example information access and distributionnetwork 100 on which many of the various features described herein maybe implemented. The network 100 may be any type of informationdistribution network, such as satellite, telephone, cellular, wireless,etc. One example may be an optical fiber network, a coaxial cablenetwork or a hybrid fiber/coax (HFC) distribution network. Such networks100 use a series of interconnected communication links 101 (e.g.,coaxial cables, optical fibers, wireless connections, etc.) to connectmultiple premises, such as locations 102 (e.g., homes, businesses,institutions, etc.), to a local office 103 (e.g., a central office orheadend). The local office 103 may transmit downstream informationsignals onto the links 101, and each location 102 may have a receiverused to receive and process those signals.

There may be one link 101 originating from the local office 103, and itmay be split a number of times to distribute the signal to variouslocations 102 in the vicinity (which may be many miles) of the localoffice 103. Although the term home is used by way of example, locations102 may be any type of user premises, such as businesses, institutions,etc. The links 101 may include components not illustrated, such assplitters, filters, amplifiers, etc. to help convey the signal clearly.Portions of the links 101 may also be implemented with fiber-opticcable, while other portions may be implemented with coaxial cable, otherlinks, or wireless communication paths.

The local office 103 may include an interface 104, which may be atermination system (TS), such as a cable modem termination system(CMTS), which may be a computing device configured to managecommunications between devices on the network of links 101 and backenddevices such as servers 105-107 (to be discussed further below). Theinterface 104 may be as specified in a standard, such as, in an exampleof an HFC-type network, the Data Over Cable Service InterfaceSpecification (DOCSIS) standard, published by Cable TelevisionLaboratories, Inc. (a.k.a. CableLabs), or it may be a similar ormodified device instead. The interface 104 may be configured to placedata on one or more downstream channels or frequencies to be received bydevices, such as modems at the various locations 102, and to receiveupstream communications from those modems on one or more upstreamfrequencies. The local office 103 may also include one or more networkinterfaces 108, which can permit the local office 103 to communicatewith various other external networks 109. These networks 109 mayinclude, for example, networks of Internet devices, telephone networks,cellular telephone networks, fiber optic networks, local wirelessnetworks (e.g., WiMAX), satellite networks, and any other desirednetwork, and the network interface 108 may include the correspondingcircuitry needed to communicate on the network 109, and to other deviceson the network such as a cellular telephone network and itscorresponding cell phones (e.g., cell phone 117).

As noted above, the local office 103 may include a variety of servers105-107 that may be configured to perform various functions. Forexample, the local office 103 may include a push notification server105. The push notification server 105 may generate push notifications todeliver data and/or commands to the various locations 102 in the network(or more specifically, to the devices in the locations 102 that areconfigured to detect such notifications). The local office 103 may alsoinclude a data server 106. The data server 106 may be one or morecomputing devices that are configured to provide data to users in thehomes. This data may be, for example, video on demand movies, televisionprograms, songs, text listings, etc. The data server 106 may includesoftware to validate user identities and entitlements, locate andretrieve requested data, encrypt the data, and initiate delivery (e.g.,streaming) of the data to the requesting user and/or device.

The local office 103 may also include one or more application servers107. An application server 107 may be a computing device configured tooffer any desired service, and may run various languages and operatingsystems (e.g., servlets and JSP pages running on Tomcat/MySQL, OSX, BSD,Ubuntu, Redhat, HTML5, JavaScript, AJAX and COMET). For example, anapplication server may be responsible for collecting data such astelevision program listings information and generating a data downloadfor electronic program guide listings. Another application server may beresponsible for monitoring user viewing habits and collecting thatinformation for use in selecting advertisements. Another applicationserver may be responsible for formatting and inserting advertisements ina video stream being transmitted to the locations 102.

An example location 102 a may include an interface 120. The interfacemay comprise a device 110, such as a modem, which may includetransmitters and receivers used to communicate on the links 101 and withthe local office 103. The device 110 may be, for example, a coaxialcable modem (for coaxial cable links 101), a fiber interface node (forfiber optic links 101), or any other desired modem device. The device110 may be connected to, or be a part of, a gateway 111 (e.g., a gatewayinterface device). The gateway 111 may be a computing device thatcommunicates with the device 110 to allow one or more other devices inthe home to communicate with the local office 103 and other devicesbeyond the local office. The gateway 111 may be a set-top box (STB),digital video recorder (DVR), computer server, or any other desiredcomputing device. The gateway 111 may also include (not shown) localnetwork interfaces to provide communication signals to devices in thehome, such as televisions 112, additional STBs 113, personal computers114, laptop computers 115, wireless devices 116 (wireless laptops andnetbooks, mobile phones, mobile televisions, personal digital assistants(PDA), etc.), and any other desired devices. Examples of the localnetwork interfaces include Multimedia Over Coax Alliance (MoCA)interfaces, Ethernet interfaces, universal serial bus (USB) interfaces,wireless interfaces (e.g., IEEE 802.11), Bluetooth interfaces, andothers.

FIG. 2 illustrates general hardware and software elements that can beused to implement any of the various computing devices (e.g., terminaldevices, remote control devices, etc.) discussed herein. The computingdevice 200 may include one or more processors 201, which may executeinstructions of a computer program to perform any of the featuresdescribed herein. The instructions may be stored in any type ofcomputer-readable medium or memory, to configure the operation of theprocessor 201. For example, instructions may be stored in a read-onlymemory (ROM) 202, random access memory (RAM) 203, hard drive, removablemedia 204, such as a Universal Serial Bus (USB) drive, compact disk (CD)or digital versatile disk (DVD), floppy disk drive, or any other desiredelectronic storage medium. Instructions may also be stored in anattached (or internal) hard drive 205. The computing device 200 mayinclude one or more output devices, such as a display 206 (or anexternal television), and may include one or more output devicecontrollers 207, such as a video processor. There may also be one ormore user input devices 208, such as a remote control, keyboard, mouse,touch screen, microphone, etc.

The computing device 200 may also include one or more network interfaces209, such as input/output circuits (such as a network card) tocommunicate with an external network 210. The interface 209 may be awired interface, wireless interface, or a combination of the two. Insome embodiments, the interface 209 may include a modem (e.g., a cablemodem), and the network 210 may include the communication links 101discussed above, the external network 109, an in-home network, aprovider's wireless, coaxial, fiber, or hybrid fiber/coaxialdistribution system (e.g., a DOCSIS network), or any other desirednetwork. The computing device 200 may communicate with the externalnetworks 210 or other devices using one or more communication protocols,such as wired communication protocols and wireless communicationprotocols (e.g., Wi-Fi, Bluetooth, ZigBee, Z-Wave, etc.).

FIG. 3A illustrates an example summary of a method of performing actionsbased on a user's location with respect to a geofence environmentcomprising one or more boundaries according to one or more illustrativeaspects of the disclosure. The steps may be performed by one or morecomputing devices. The computing device may be, for example, withreference to FIG. 1, application server 107, gateway 111, computer 114,a device at the location 102 a, a device at the local office 103, and/ora remote device that can communicate with the location 102 a or thelocal office 103.

In step 305, the computing device may register a user and/or the user'sdevices (e.g., a mobile device, such as a cell phone) for locationservices. The computing device may also generate and/or store a userprofile that correlates automated actions with the user's currentlocation, as will be described in further detail in the examples thatfollow. The location services described herein may be opt-in. Therefore,each user may decide whether or not to have his or her location trackedfor use with the location services by, e.g., registering with thesystem. Step 305 will be described in further detail in the examplesthat follow. For example, the user may set certain actions to be takenbased on the user's location within a geofence environment, wherebythose actions may include opening or closing the user's garage door athis/her home when the user crosses a geofence boundary. Also, the usermay set up a geofence environment with one or more geofences providedaround a target area such as the user's home, whereby the geofenceenvironment may be set up using one of the user interface displays shownin FIGS. 9A, 9B and 9C.

In step 310, the computing device may determine the user's location by,for example, using a highly accurate (but highly power consuming)location determination mode (e.g., using GPS signals, or using WiFisignals from a WiFi access point), and to then compare the location ofthe user's mobile device with respect to a geofence environment that mayinclude one or more concentric virtual fences or boundaries centeredaround the user's home or place of business (and which may be createdusing a user interface display such as shown in FIG. 9A, 9B or 9C, forexample). As will be discussed in the examples below, the computingdevice may use one of several different wireless communication protocolsand/or wireless networks (e.g., Wi-Fi, Cellular, GPS and/or Bluetooth)to determine the user's location based on where the computing device islocated with respect to the one or more concentric virtual fences of thegeofence environment. The geofence environment may be created by theuser beforehand (e.g., by way of the user interface display shown inFIG. 9A, 9B or 9C), whereby the user may also set actions to beperformed at a target area (e.g., the user's home) when the user crossesa geofence of the geofence environment.

GPS location determination may be performed by the user's device (e.g.,a mobile device) receiving time signals sent from global positioningsatellites, which are received and processed by the mobile device toestimate its position by performing a triangulation process of signalsreceived from three or more global positioning satellites, in a mannerknown to those of ordinary skill in the art. Such processing of GPSsignals to compute the mobile device's location may take up a certainamount of power resources of the mobile device (both in reception of GPSsignals and the processing of received GPS signals to compute a locationbased on the received GPS signals), whereby the tradeoff is that anaccurate location of the device is obtained as a result.

Cellular location determination may be performed by the mobile devicereceiving a beacon signal output by a cellular tower, which is receivedand processed by the mobile device to estimate its position based onknown cell tower location. Cellular location determination does not takeup much power of the mobile device, since the mobile device is alreadysearching for cellular beacons in its normal operation mode ofperiodically searching for an available cellular communications network.However, cellular location determination typically gives a roughlocation determination in that reception of a cellular beacon signalfrom a cell tower enables a determination that the mobile device islocated somewhere within a cell covered by the cell tower, which cancover a fairly large region (e.g., a 5 mile diameter circular regioncentered around the location of the cell tower).

WiFi location determination may be performed by the mobile devicereceiving beacon signals output by one or more WiFi access points, whichare received and processed by the mobile device to estimate its positionbased on known WiFi access point locations. WiFi location determinationdoes not take up much power of the mobile device, since the mobiledevice is already searching for WiFi beacons in its normal operationmode when WiFi is turned ON. Bluetooth location determination may beperformed in a similar manner as WiFi location determination. Thevarious examples above involve the mobile device receiving signals fromstationary sites in known locations, such as cell towers and WiFirouters, and assigns the location of the mobile device to that knownlocation. In alternative embodiments, the stationary sites may receive asignal from the mobile device, and may triangulate the location of themobile device using the signal received from the mobile device, tothereby assign the location the location of the mobile device to alocation different than the location of the stationary se.

The location determination may also be performed using a locationdetermination scheme operating at: a) a high update or polling rate thatconsumes a large amount of battery strength of the user's mobile device,b) an intermediate update or polling rate that consumes a lesser amountof battery strength of the user's mobile device, or c) a slow update orpolling rate that consumes a smaller amount of battery strength of theuser's mobile device (since each separate polling of GPS signals takesup power due to reception of the signal and processing of the signals todetermine a location of the mobile device). The update or polling ratechosen for the location determination scheme may depend on where theuser's mobile device has been determined to be located with respect tothe one or more concentric virtual fences on a most recent locationdetermination of the mobile device. By way of example, an intermediateupdate or polling rate of once every 10 seconds may consume 10% of amobile device's battery strength per hour, whereas a slow update orpolling rate of once every minute may consume 3% of a mobile device'sbattery strength per hour. Location determination using GPS signalstypically takes up more power resources of a mobile device than locationdetermination using signals output by WiFi access points, and locationdetermination using signals output by WiFi access points typically takesup more power resources of the mobile device than location determinationusing signals output by cell towers (since WiFi mode is an optional modethat may or may not be turned ON by a user when a mobile device isturned ON, whereby cellular signal reception by a mobile device istypically turned ON when the mobile device is turned ON).

In step 315, the computing device may perform one or more actions basedon the user's current location. For example, the computing device maysend an instruction to a display device or set-top box located in aliving room of the user's home when the user's mobile device isdetermined to have entered the user's home that is located within aninnermost virtual geofence (also referred to herein as ‘innermostgeofence’ or ‘inner geofence’). The innermost geofence may be located ashort distance from the user's home, such as 100 feet outside the user'shome. As another example, the computing device may send an instructionto activate a home security system when the user has moved from theinnermost geofence region to a virtual fence region of the geofenceenvironment that corresponds to a toroidal-shape region that is locatedbetween the innermost geofence and a middle virtual fence (also referredto herein as ‘middle geofence’). The middle virtual fence may be acircular-shaped virtual fence located within a predetermined distancefrom the user's home (e.g., 1000 feet from the user's home), or othershaped virtual fence (e.g., rectangular, trapezoidal, or square-shaped).As yet another example, the computing device may send an instruction toturn off the home air conditioning system when the user has moved from afirst geofence region between the inner geofence and the middlegeofence, to a second virtual fence region that corresponds to atoroidal-shape region that is located between the middle geofence and anoutermost virtual fence (also referred to herein as ‘outermost geofence’or ‘outer geofence’) that is further from the user's home than themiddle geofence.

FIG. 3B shows a geofence environment 355 having an inner geofence 357, amiddle geofence 359, and an outer geofence 361. The geofence environmentcomprises a first geofence region 363 surrounded by the inner geofence357, a second geofence region 365 located between the inner geofence 357and the middle geofence 359, a third geofence region 367 located betweenthe middle geofence 359 and the outer geofence 361, and a fourthgeofence region 369 located outside of the outer geofence 361. Theuser's home 373 may be considered as part of the first geofence region363 in some embodiments. In other embodiments, the first geofence region363 may correspond to a region within the inner geofence 357 but outsideof (and thus separate from) the user's home 373, such as a front yardarea and back yard area adjacent to the user's home 373. A geofenceregion may be defined in some embodiments with relation to a geofence,in which an inner geofence region corresponds to a region inside of(e.g., surrounded by) the geofence, and an outer geofence regioncorresponds to a region outside of the geofence.

FIG. 4 illustrates an example network 400 of devices used to determineusers' locations and corresponding actions based on users' locationsaccording to one or more illustrative aspects of the disclosure. Thenetwork 400 may include a user device 402, such as a mobile device.Examples of mobile devices include, for example, a mobile phone 116 or117, a tablet, a laptop computer 115, a PDA, or any other desireddevice. The mobile device 402 may include an awareness client 404, whichmay be a software client running on the mobile device 402. In someaspects, the awareness client 404 may operate on a mobile operatingsystem, such as GOOGLE ANDROID, APPLE iOS, and the like. The mobiledevice 402 may also have an associated device identifier, such as an IPaddress, a range of IP addresses, a MAC address, a device name, or anyother identifier that uniquely identifies the mobile device 402. Theuser may also be able to assign an identifier to the mobile device 402,such as naming the device. The mobile device 402 may also have wireless(or wired) communication and/or location capabilities. For example, themobile device 402 may have a GPS transceiver, a Wi-Fi transceiver, acellular transceiver (for communicating over cellular telephonenetworks), and a Bluetooth transceiver (not shown in FIG. 4). As will bediscussed in further detail below, the mobile device 402 may send andreceive messages over GPS, Wi-Fi, cellular networks and/or Bluetooth, todetermine its location and/or which networks and devices the mobiledevice 402 is or can connect to. The location information may betransmitted, such as by the awareness client 404 of the mobile device402, to the awareness server 412, as will be discussed in further detailbelow.

The network 400 may also include a device 406, such as a locationmonitoring device, a gateway, a television, a PC, or any other desiredcomputing device. The device 406 may be fixed in its location such thatit is typically not moved by the user. The fixed device 406 may have allor some of the same capabilities as the mobile device 402. For example,the fixed device 406 may be associated with a unique identifier. A usermay name his or her set-top box (e.g., Fred's Living Room set-top box).The fixed device 406 may also have an awareness client 408 running overan operating system. The fixed device 406 may also have wireless (orwired) communication and/or location capabilities. The example fixeddevice 406 illustrated in FIG. 4 has a GPS transceiver, a Wi-Fitransceiver, and an interface for wired communications (e.g., Ethernet,coaxial communication, optical fiber communication, etc.). The fixeddevice 406 may also send and receive messages over wireless or wirednetworks to determine its location and/or which networks and devices thefixed device 406 is or can connect to. For example, the fixed device 406may communicate with the mobile device 402 via Bluetooth or Wi-Fi.Location information may be transmitted, such as by the awareness client408 of the fixed device 406, to the awareness server 412, as will bediscussed in further detail below.

The network 400 may also include a device 410, which may be a devicecapable of communicating using one or more of a plurality ofcommunication protocols. The example device 410 illustrated in FIG. 4can communicate with other devices via WiFi. However, the device 410might not be able to communicate over, for example, Bluetooth and/orcellular signals. In some embodiments, an awareness client could beplaced on the WiFi-only device 410. However, this need not be the case;the WiFi-only device 410 might not have an awareness client. TheWiFi-only device 410 may broadcast WiFi signals, which may be used toanalyze signal strengths in order to determine or refine the location ofuser devices and their associated devices, as will be discussed infurther detail in the examples below. The WiFi-only device 410 may alsobe registered (e.g., paired) with one or more other devices, such as themobile device 402 and the fixed device 406. The WiFi devices may belocated, for example, at the user's home 373, in a particular room inthe user's home 373, in the user's car, outside of the user's home 373,etc.

The network 400 may also include an awareness server 412. The awarenessserver 412 may comprise one or more computing devices, such as theservers 105, 106, and/or 107 at the local office 103. The awarenessserver 412 may also be cloud-based, utilizing one or more networkedcomputing devices to receive, process, store, and send information. Insome aspects, the awareness server 412 may receive information(including location information) from the user's mobile device 402. Forexample, the awareness clients 404 of the user's mobile devices 402 maysend information in real time to a listener 414 of the awareness server412. The listener 414 may comprise a software application that activelyprompts and/or listens for information, including requests made, fromvarious client devices. Communications among devices in FIG. 4 may bedirect or via one or more intermediate devices, e.g., nodes, and othernetworks.

The awareness server 412 may include other software and/or hardwarecomponents. For example, a home location configuration application 416may allow a user to configure his or her home topology and map devicesto the configured topology. A device registration application 418 mayallow a user to register devices (discovered by the user's mobile device402, such as other user devices, and GPS-enabled and WiFi-enableddevices). The device registration application 418 can also be populatedin other ways such as with information for devices that are purchasedvia other ways (like buy flows or point of sale applications). A userauthentication application 420 may correlate user devices with useridentifiers, such as usernames/passwords for a service provider account,a social media account (e.g., FACEBOOK, TWITTER, and the like). Bycorrelating user devices with user identifiers, the user might not haveto provide a password to log into each account. Rather, the user mightautomatically be logged on to some or all of the user's accounts by, forexample, bringing his or her device within the proximity of anotherdevice, such as a fixed device in the home.

A location awareness application 422 may be used to determine where theuser is located based on one or more pieces of information it hasreceived from the user's mobile device 402, when the mobile device isallowed to accept such information to be explained in more detail withrespect to some embodiments. Example location information include, butare not limited to, identity of the device having the highest signalstrength relative to the user device, Wi-Fi or wired Internet Protocolinformation, mobile geo-location information (e.g., from GPS or cellularradios), and other device and user information the location awarenessapplication 422 could access on its own (e.g., information stored in thecloud). The location awareness application 422 may determine (orestimate) the user's location, the identity of the user, and whichdevices (e.g., the mobile device 402, the fixed device 406, or the WiFidevice 410) the user is using or is near. User, device, location (raw ordetermined), and other information may be stored in an awarenessdatabase 424. The methods described herein may be performed by theaforementioned network of devices 400 or by a similar system.

In some aspects, all or a portion of the information stored in theawareness server may be replicated or otherwise copied to a device inthe location 102 a and/or user device or another accessible device inthe network. For example, a particular user's profile, which mightinclude user information, device information, location information, andother information, may be cached at a device in the location 102 a, suchas the gateway 111. The same may be done for other users (e.g., users ateach of the locations 102). By caching the information, the amount oftime to access the information may be reduced.

FIG. 5 illustrates an example method of generating and storing userprofiles according to one or more illustrative aspects of thedisclosure. The method may be performed by any of the computing devicesdescribed herein, including cloud computing devices, computing devicesat the local office 103, computing devices within the location 102,and/or mobile computing devices (e.g., a mobile phone).

In step 505, the computing device may generate (e.g., create) a userprofile used for or associated with location services. Location servicesmay include, for example, tracking the user's location and performingautomated actions based on the user's location, such as by polling theuser device in a periodic manner. If a profile for the user alreadyexists, such as if it was previously generated, the computing device mayinstead retrieve the user's profile. For example, a user profile mayhave been generated when the user signed up for internet access throughan internet (or other) service provider. When the user desires to signup for location services, the computing device may retrieve the user'sinternet service provider profile rather than generating a new profile.As will be discussed in further detail in the examples below, the userprofile may identify users' preferences and be used to identify thetopology of the user's home, devices, identifiers, telephone numbers,and the like. For example, the user profile may associate the user'slocations with one or more automated actions.

In step 510, the computing device may determine identifiers for theuser. Referring now to FIG. 6, that figure illustrates an exampleinterconnection of users' service accounts, locations, telephonenumbers, and device identifiers according to one or more illustrativeaspects of the disclosure. Example user identifiers may be associatedwith data from one or more service accounts 602, such as an accountnumber, a user's physical address, a user's email address, the primaryaccountholder's user identifier, a secondary accountholder's useridentifiers, and social media identifiers (e.g., FACEBOOK usernameand/or password, TWITTER username and/or password, and the like).

User identifiers may also comprise (or be associated with) one or moretelephone numbers 604, such as the user's telephone number (e.g., amobile phone number), a primary user's primary telephone number, aprimary user's secondary telephone number, a secondary user's primarytelephone number, and a secondary user's secondary telephone number.Each of the telephone numbers 604 may be mapped to a service accountidentifier 602. For example, a user's primary telephone number1-123-456-7890 may be mapped to (or otherwise correlated with) theprimary user's service account ID. A secondary user's primary telephonenumber 1-555-333-1212 may be mapped to the secondary user's identifier(e.g., test_user@comcast.net) and the secondary user's FACEBOOK account.

In some aspects, primary and secondary users may form a group of usersfor location services. A primary user may add one or more secondaryusers to the primary user's account. The secondary users may, but neednot, be related to the primary user. For example, the group may comprisea mobile phone family plan. Each family member's mobile number may bemapped back (e.g., paired) with that family member's service accountidentifier. Alternatively, more than one family member's number could bemapped to a single service account identifier, or more than one serviceaccount identifier could be mapped to a single telephone number. Detailson grouping users for location services will be discussed in furtherdetail in the examples below.

Returning to FIG. 5, in step 515, the computing device may determinewhether the user has opted-in to geofence location services (e.g., tohave the user's locations tracked). If the user has not opted-in togeofence location services, the method illustrated in FIG. 5 may end,and the computing device may store the user's profile in step 540. Ifthe user has opted-in to geofence location services, the computingdevice may add and/or correlate other information with the user'sprofile. By way of example, a geofence environment may have beenpreviously set up by the user, or it may be set up in this step, such asby way of the user interface displays shown in FIGS. 9A, 9B and 9C.

In step 520, the computing device may identify and/or store anidentifier for each of the user's devices. The user may provide a listof his or her devices to the computing device. Additionally oralternatively, the computing device may automatically detect the user'sdevices. For example, the computing device may identify each devicehaving a location service application, such as the awareness client 404or the awareness client 408 that the user has signed on to. Thecomputing device may also automatically add devices that connect to aparticular network (e.g., an in-home Wi-Fi network or Z-Wave network) tothe list of devices. When a device is automatically added, the computingdevice may trigger a message (e.g., an email, a text message, a popupmessage, etc.) to be sent to an owner of the network to validate thedevice (e.g., as a trusted device or a guest device). A website ormobile application may also be used to correlate a user with the user'sdevices. For example, a graphical user interface (GUI) used to configurethe topology of the user's home, such as a GUI similar to the oneillustrated in FIG. 7, may be used by the user to input information forthe user's devices. Social media accounts may also be used to link usersto devices. For example, when the user signs on to the social mediaaccount on a particular device, the website or application used toperform the sign-on could send information identifying the user deviceto the awareness server 412 to be stored in the awareness database 424.

As previously discussed, the devices may include a mobile phone, tablet,laptop computer, PDA, or any other mobile device (e.g., devices that theuser might carry). As illustrated in FIG. 6, each device 606 may haveone or more device identifiers. Example identifiers include IPaddresses, MAC address, device name, or any other identifier thatuniquely identifies the device, as previously discussed. As illustratedin FIG. 6, each device can be mapped to one or more telephone number604, which may in turn be mapped to one or more service accountidentifier 602. Alternatively, a device may be mapped directly to aservice account identifier 602, such as if the device does not have atelephone number (e.g., a Wi-Fi only device).

Returning to FIG. 5, in step 525, the computing device may identifyand/or store an identifier for other devices that may be used todetermine the user's location. These other devices may include, forexample, the fixed devices 406 and/or the WiFi-enabled devices 410illustrated in FIG. 4. The methods for identifying these other devicesmay be the same (or similar) to the methods used to identify the user'sdevices described with reference to step 520. For example, the user mayprovide a list of these devices to the computing device, or thecomputing device may automatically detect these devices. ForBluetooth-compatible devices, the device name or ID may be part of theBluetooth specification.

Referring also to FIG. 1 and FIG. 3B, a gateway device, such as thegateway 111, may be used to determine the user's location when the useris in the user's home 373 and thus inside the inner geofence 357. Forexample, the gateway 111 may be a set-top box with Bluetooth capability.As an example, the gateway 111 may be (or be connected to) a wireless(e.g., Wi-Fi) router that provides a wireless network. As will bediscussed in the examples below, the device's connection to the wirelessnetwork may be used to determine that the user is currently within theuser's home 373 or a predetermined distance from the user's home 373,such as inside the middle geofence 359 but outside the inner geofence357. Furthermore, IP addresses (or address ranges) may identify thephysical location of the device having the IP address or IP addressrange. For example, a home Wi-Fi network might have a predetermined IPaddress range. If a device has an IP address within that range, thecomputing device may determine that the device is within the innergeofence 357 and thus either in the user's home 373 or just outside theuser's home 373.

Any of the mobile devices 402, fixed devices 406, and Bluetooth-enableddevices 410 may be used to identify any of the other mobile, fixed, andBluetooth-enabled devices. For example, the mobile device 402 may havean application, which may be the awareness client 404, that scans forother devices with WiFi capabilities within the range of the mobiledevice 402, such as the fixed device 406 (if it has WiFi capabilities)or the WiFi-enabled device 410. The mobile device 402 may identify theWiFi-enabled device during an exchange of messages with that device overa WiFi network. For example, the WiFi-enabled device may send anidentifier for itself to the mobile device 402 during the exchange. Themobile device may send, to the awareness server 412, identifiers for theWiFi-capable devices it detects, and the identifiers may be stored inthe profile of the user associated with the mobile device 402. This maybe especially beneficial when a WiFi-enabled device 410 cannotcommunicate directly with awareness server 412. The fixed device 406 maysimilarly be used to identify other mobile, fixed, and WiFi-enableddevices and send the identifiers to the awareness server 412.

Returning to FIG. 5, in step 525, the computing device may alsodetermine and/or store the location of each device that may be used todetermine the user's location or otherwise associate the device with theuser when the user is within the inner geofence 357 of the geofenceenvironment 355. For example, in FIG. 6, devices 606 may be associatedwith one or more location 608.

The computing device may determine the location of each device thatcould be used to determine a user's location when the user is locatedwithin the user's home 373. The user may manually enter the location foreach device into the user's device (e.g., a mobile phone). For example,the user may enter the device identifier and the location of the device(e.g., the living room within the user's home 373) into the user'smobile device. As discussed above, the user may provide information to aGUI to associate devices with rooms. Alternatively, the awareness servermight already know the identity of each of the devices, but not know thelocation of each device. The awareness server may send the identityinformation to the user's mobile device, and the mobile device mayprompt the user to input the location for each of the devices. Once theuser provides the location for each device, the locations may be storedin the user's profile (e.g., in an awareness database in the awarenessserver).

In some aspects, the location of each device may be determined withinthe user's home 373 of FIG. 3B based on the name of one of the devices(e.g., a gateway device) and its proximity to other devices. Forexample, a user may name the user's STB “Living Room's Set Top Box.” Thecomputing device may determine that that particular STB is in a livingroom of the user premise based on character recognition or other textmatching method. If other devices connect to the Living Room Set TopBox, such as via Bluetooth or other short-range protocol, the computingdevice may determine that those devices are also in the living room. Thesignal strength of such connections may also be used to determine thelocation of those other devices.

Alternatively, the awareness server 412 (see FIG. 4) might already knowthe topology (e.g., layout) of the user's home 373, including that theuser's home 373 has a living room, kitchen, kids playroom, media room,bedroom, and deck/porch. For example, the user may have provided theawareness server 412 with the topology of the user's home 373 when theuser registered for services, such as mobile phone services, internetservices, content services, etc. Alternatively, the topology of theuser's home 373 may be pulled from public records for structures such asif the user has made the topology or blueprint of the user's home 373public and available through a title company. The awareness server 412,however, might not know which devices are in each room. The awarenessserver 412 may send a list of rooms in the user's home 373 to the user'smobile device, and the mobile device may prompt the user to identifydevices in each of the rooms. For example, the mobile device may display“Living Room.” The user may input a device identifier for a BluetoothDevice, such as the name “Living Room Bluetooth Speakers.”Alternatively, the mobile device may pair with the Living Room BluetoothSpeakers and automatically send an identifier for the speakers to theawareness server 412. After receiving the information, the awarenessserver 412 may correlate the Living Room with the Living Room BluetoothSpeakers. Information identifying a Bluetooth device in the kitchen, aBluetooth device in the kid's playroom, a Bluetooth device in the mediaroom, and a Bluetooth device in the bedroom may be provided to theawareness server 412 in a similar manner as the Bluetooth device in theliving room.

Instead of the user's mobile device sending the information to theawareness server 412, a different device, such as a fixed device 406 orany other device that can communicate with the awareness server, mayprovide the location and/or device information. For example, the usermay utilize the input/output capabilities of a display device (e.g., atelevision) and/or a gateway device (e.g., a set-top box or router) toprovide location and/or device information to the awareness server 412.When the awareness server 412 receives the location or deviceinformation, it can store the information in the user's profile.

Returning to FIG. 5, in step 530, the computing device may determinegroups, such as permission groups, that the user belongs to or shouldbelong to. The computing device may generate a new permission group withthe user as a member. Alternatively, the computing device may add theuser to an already-existing permission group. As previously discussed, aprimary user and secondary users in a content service account or mobiletelephone service account may be included in the same group. Forexample, the group may include all members on the same mobile serviceaccount (e.g., all family members on a family plan). A user, such as theprimary user, may have the authority to add other users to the group.Alternatively, each user of the group may have the authority to addother users to the group. In some aspects, the location serviceprovider, content service provider, mobile phone service provider, orany other service provider associated with the users and/or groups mighthave to give permission to the user to add additional users to thegroup. Certain actions to be automatically performed when a user of agroup moves inside and outside of a geofence may be set up, based oninput made by the primary user of the group.

Each user may also have one or more devices, such as mobile devices 606illustrated in FIG. 6. Each user's devices may be mapped to one or moretelephone number 604 and/or service account identifier 602. By bindingdevices to one another and/or to telephone numbers or service accountidentifiers, authentication and content access permissions may beestablished for devices in the group. Each separate user device mayresult in a specific action associated being performed, based on thelocation of the particular user device within the geofence environment.For example, user device #1 having moved within an inner geofence regionmay result in the opening of a garage door in the user's home, whereasuser device #2 having moved within the inner geofence region may resultin the turning on of an HVAC system in the user's home. Each user groupmay have different actions to be performed based on where a user of theuser group is located within a geofence environment, as compared toother users of other user groups located in the same region.

The user's device, such as a mobile phone, may be used to authenticatethe user, such as for services and/or products. For example, the usermay seamlessly sign on for services and/or products (e.g., to accesscontent items, to access mobile phone services, etc.) using his or hermobile phone. In other words, the phone may act as a mobile wallet orpassport for signing in the user for any products and servicesassociated with the user's or user device's identifiers (e.g., theservice account identifiers 602, the telephone numbers 604, the deviceidentifiers 606, and the like). By using the device for authentication,the user may be able to access these services and/or products withouthaving to manually authenticate him or herself (e.g., by entering ausername and password).

Users within the same group may also be authenticated using theirdevices. For example, if a user within the group is authenticated for aproduct or service using the user's device, the other users in the groupmay be automatically authenticated for the same product or service.Individual and group authentication may also be based on one or moreusers' locations, as will be described in more detail in the examplesbelow. Authentication of a user or group of users may be used to enablea geofence location determination process to start, according to one ormore embodiments described herein. In some embodiments, different levelsof authentication may be performed based on the location of users in thegeofence environment. For example, if a user is located in the exteriorregion of the geofence environment 5 miles or farther from the user'shome, single factor authentication of the user may be performed (e.g.,the user provides a username/pas sword for authentication of the user),whereas if the user moves to a closer region of the geofence environmentbetween 1 and 5 miles from the user's home, multi-factor authenticationmay be performed (e.g., dual factor authentication in which the userprovides a username/password and also a fingerprint identification, forauthentication of the user). This may be done because actions that areto be performed when the user is closer to his/her home may be morecritical and require further authentication of the user (e.g., unlockthe user's front door) as opposed to actions that are to be performedwhen the user is farther away from his/her home (e.g., turn on theoutside lights of the home).

Content access permissions may also be set for an individual user orusers in the same content access permission group. For example, if oneuser is permitted to access particular content, other users in the samegroup may be permitted to access the same content, without the otherusers having to be separately authenticated to access the content.Individual and group content access permissions may also be based on oneor more users' locations, as will be described in more detail in theexamples below.

Returning back to FIG. 5, in step 535, the computing device maydetermine automated actions to take based on the user's currentlocation. FIG. 8 illustrates example user profiles 800 that correlateusers' locations to automated actions according to one or moreillustrative aspects of the disclosure. For simplicity, otherinformation stored in the user's profile are not illustrated in FIG. 8.The example profile 800 shows separate profiles for a first user 805 anda second user 810. As previously discussed, the first user 805 andsecond user 810 may be in the same group, such as a permission group.Inclusion of users in the same group may have implications forauthentication and/or content access permissions. Based on the groupassigned to a user and the location of the user within a geofenceenvironment, certain actions may automatically be taken (e.g., closewindow blinds in the user's home, open garage door in the user's home,etc.).

The profile for the first user 805 may correlate a location with one ormore automated actions or an automated action with one or more location.The automated actions may relate to access to content and/or homeautomation. For example, when the first user 805 is in the living room,the set-top box (or television) may switch to a default channel, such asthe user's favorite channel. This channel may be identified in theuser's profile, for example. Content may also be pushed to the firstuser's mobile device when the user enters the living room. For example,news information, weather information, and the first user's work emailsmay be pushed to the first user's mobile device when the first userenters the living room. The first user may also be given full access tostreaming content (e.g., via a set-top box, a computer, a television, atablet computer, a mobile phone, etc.) when he or she is in the livingroom. For example, the user may be subscribed to a content subscriptionplan, and the user may be authorized to access all of the content underthe subscription plan when the user is in the living room. As will bedescribed in the examples below, the user might not be able to accessall of the content under the subscription plan when the user is at adifferent location such as outside (but within 20 feet of) the user'shome 373 within the first additional region 365 of FIG. 3B.

In some embodiments, when the user's battery power is below a thresholdlevel, such as 20% battery power or lower, location determination maydefault to a low power location determination mode, such as a WiFilocation determination mode or a cellular location determination mode,irrespective as to the current location of the user. In someembodiments, a pop-up window may be provided on a display of the userdevice, in which the user is prompted to change the locationdetermination mode to a lower power mode, or to authorize a particularaction that would otherwise automatically have taken place based on thelocation of the user within the geofence environment.

In response to the first user 805 entering his or her bedroom, theliving room television (or any other device, such as lights) may beautomatically turned off. The first user 805 might also have full accessto streaming content while in the bedroom. A home security system at theuser's premise may also be automatically set when the first user 805enters the bedroom. For example, the motion detectors may be activated(or otherwise turned on) when the first user enters his or her bedroom.

When the first user 805 enters his or her deck or porch, the lights inthe user's home 373 may be automatically turned off. As will bediscussed in further detail in the examples below, the user's specificlocation within the user's home 373 may be determined using one or moreBluetooth or WiFi devices or other protocols of short or medium range.

Automated actions may be taken when the user is outside the innergeofence 357 but inside the middle geofence 359 of the geofenceenvironment 355. For example, when the user is within one hundred (100)feet of the user's home 373 and is located in the geofence region 365 asshown in FIG. 3B, the user's set-top box and television may be turnedon. Furthermore, when the user is within 100 feet of the user's home 373and located in the geofence region 365 as shown in FIG. 3B, the usermight be given limited access to streaming content. For example, theuser might be given access to a subset of the streaming content that theuser can access when the user is in the region 363 that is within theinner geofence 357 but outside the user's home 373. In some embodiments,based on the amount of battery power of the user's mobile device and thelocation of the user's mobile device within the geofence environment,certain actions may be restricted, such as an action to stream videocontent to the user's mobile device when the user is within 100 feet ofthe user's home 373, so as to not deplete the remaining amount ofbattery power of the user's mobile device.

When the user is outside the middle geofence 359 but inside the outergeofence 361 of the geofence environment 355, such as located two (2)miles from the user's home 373 and within the geofence region 367 asshown in FIG. 3B, content may be pushed to the user's mobile device.Alternatively or additionally, the content may be pushed to mobiledevices associated with other users in the same group as the user 805,such as a second user's mobile device. The content may comprise, forexample, an advertisement, a message indicating that the user is within2 miles of the user's home 373, or any other content. The user may alsobe given limited access to streaming content when the user is outsidethe middle geofence 359 but inside the outer geofence 361 (e.g., locatedthree (3) miles from the user's home 373). Alternatively, the user 805may be provided with a notification on his or her mobile device as towhether or not to cause the pushing of content to other users in thegroup as the user 805 when the user enters the geofence region 367.

When the user is outside the middle geofence 359 but inside the outergeofence 361 of the geofence environment 355 and thus within thegeofence region 367 as shown in FIG. 3B, the temperature at the user'shome 373 may be adjusted via a thermostat in the user's home 373. Forexample, the temperature may be increased (e.g., by turning on theheating system or turning off the air conditioning system) or decreased(e.g., by turning on the air conditioning system or turning off theheating system), based on the user's preferences stored in the profile.Alternatively, the user may be provided with a notification on his orher mobile device as to whether or not to adjust the temperature at theuser's home 373 when the user enters the geofence region 367 from theregion 369 outside of the outer geofence 361.

When the user is at another location, such as a store located withinanother geofence environment separate the geofence environment 355 asshown in FIG. 3B, the computing device may permit a third party to sendcontent, such as advertisements, coupons, and other content, to thefirst user's mobile device. For example, a coupon for a product orservice may be sent to the user when he or she enters the store.

Referring back to FIG. 8, the second user 810 may also have a profilecorrelating locations with actions (e.g., content actions and/or homeautomation actions). If the second user 810 is in the living room of theuser's home 373, the set-top box and the display device (e.g., atelevision) in the living room may be turned on, a custom interface forthe second user 810 may be pushed to or displayed on the remote controlfor the set-top box or television, and a content recommendation for thesecond user 810 may be generated and/or displayed on the television ordisplay device in the living room or on the user's mobile device. Theactions to be performed based on the location of the second user 810 inthe user's home 373 may cause a display on the device of the second user810 of the action to be taken, and to request that the second user 810affirmatively acknowledge acceptance of the action to be taken. If thesecond user 810 is in the bedroom of the user's home 373, the displaydevice in the bedroom may be turned on automatically and a home securitysystem, such as the motion detectors outside of the bedroom, may beturned on automatically. If the user is outside the user's home 373 (onthe deck or porch that is outside the inner geofence 357 and inside themiddle geofence 359), such as within the geofence region 365 or thegeofence region 367 as shown in FIG. 3B, the lights in the user's home373 can be turned off automatically, which is the same action that wouldbe performed if the first user 805 goes to the deck just outside theuser's home 373.

When the user is within 20 feet of the user's home 373, such as withinthe geofence region 363 as shown in FIG. 3B, a set-top box in the user'shome 373 may be turned off, a television in the living room may beturned off, and the home security system may be set. Alternatively, thehome security system at the user's home 373 may be turned off if theuser is returning to the user's home 373 from a different location, suchas work. The doors to the user's home 373 may also be locked orunlocked. Similarly, the garage door may be opened if the user 810 isarriving at the user's home 373 or closed if the user is leaving theuser's home 373.

When the user is within a mile from the user's home 373 and travelingaway from the user's home 373, such as being within the geofence region365 after having crossed to outside of the inner geofence 357, thetemperature in the user's home 373 may be adjusted (for example, turneddown). Alternatively, when the user is within 5 miles from the user'shome 373 and traveling toward the user's home 373, such as being withinthe geofence region 367 after having crossed to inside of the outergeofence 361, the temperature in the user's home 373 may be adjusted(for example, turned up). Like the first user 805, the second user 810may be sent content, such as advertisements, by third parties when thesecond user 810 is at another location, such as a store.

Returning to FIG. 5, in step 540, the computing device may store theuser's profile correlating locations with actions (among otherinformation) in, for example, the awareness database 424 illustrated inFIG. 4. As one of ordinary skill in the art would appreciate, profilesmay be stored at any location, including within the user's home 373and/or outside of the user's home 373.

FIG. 7 illustrates an example method of determining a user's location byusing a location determination mode that is optimal (in a powerutilization sense) for each particular region within a geofenceenvironment according to one or more illustrative aspects of thedisclosure. In some aspects, the user's current location may bedetermined using one of a plurality of different location determinationmodes, where the location determination mode to use is chosen based onthe most recently computed location of the user. As will be discussed inthe examples below, a computing device may attempt to determine theuser's current location using first information dependent upon a mostrecent determination as to the user's location, in which the firstinformation is provided by way of polling cell towers of a cellularnetwork to determine the user's location when the user was lastdetermined to be outside of an outermost geofence of a multi-fencegeofence environment (e.g., which cell of a cellular network is the userlocated). This may result in low battery drain of the user's mobiledevice, and may correspond to a low power consumption, low accuracylocation determination mode (e.g., a location determination savingsmode) that may be used when the user's mobile device is far away fromthe user's home. That way, battery life of the user's mobile device maybe prolonged and not used up quickly as compared to other types oflocation determination modes. The low power is a result of the user'smobile device not having to send out any signals for determiningposition, beyond the standard process of the user's mobile devicereceiving signals from in-range cell towers of a cellular network toconnect to the cellular network in a normal operation mode of the mobiledevice. The low power consumption, low accuracy location determinationmode may not be as accurate as other modes, such as polling for signalsoutput by a global positioning system (GPS) or a home-based WiFi networkor a community-based WiFi network (e.g., Wi-Fi available across a WideArea Network) to determine a user's location. This is not generally aconcern, since when the user is outside of the outermost geofence,he/she is far away from his/her home and thus precise location of theuser is generally not necessary. GPS location modes typically provideaccuracy to within 100 feet, whereby a cellular location mode may onlyprovide accuracy to within 1-2 miles (e.g., provide information as towhich cell of a cellular network the user is located in). However, GPSlocation modes require more power consumption than cellular locationmodes and WiFi location modes, and thus there is a tradeoff of locationaccuracy versus power consumption. A GPS location determination modeprovides precise location determination, and is not based on a networkconnection to a local cellular network or a WiFi network. As such, GPSlocation determination takes up more power than a WiFi locationdetermination mode or a cellular location determination mode thatpiggy-back on network connection signals (e.g., beacons) that are usedto connect to a local WiFi or a local cellular network.

A GPS location determination mode that polls for GPS signals todetermine the location of a user's mobile device may be performed by themobile device receiving signals from a GPS system of 24 satellites basedon a polling of the GPS system by the user's mobile device, in which thereceived signals include very accurate time-of-day time stampinformation corresponding to the exact time when the GPS signal wastransmitted by the satellite. The time-of-day time stamp information isaccurate enough so that the mobile device may calculate how far away agiven satellite is by comparing the time the signal is received from thesatellite and the time stamp information included in the receivedsignal. Very precise accuracy may be obtained using GPS information(e.g., up to a few meters accuracy when GPS polling rate is once persecond, or in the ‘tens of meters’ accuracy when GPS polling rate isonce per minute assuming the mobile device is moving at a certain speedsuch as 10 miles per hour), but whereby GPS location determinationtypically uses more mobile device resources and thus has a greaterburden on a mobile device battery as compared to WiFi locationdetermination and cell tower location determination.

A cellular location determination mode that polls for cell tower signalsto determine the location of a user's mobile device may be performed bythe mobile phone periodically notifying local cell towers of itspresence so that phone calls can be routed to the mobile device. Thisresults in a very low burden on the mobile device's battery, but alsoprovides a fairly inaccurate location determination of the mobiledevice, such as determining that the mobile device is located somewherewithin a 5 mile diameter cell region. However, in cases where the mobiledevice can receive cell tower signals from more than one cell tower,such as a first cell tower and a second cell tower, then locationdetermination may be more precise (e.g., 1/10 mile accuracy) since thelocation of the mobile device would then correspond to the intersectionof first and second cells respectively associated with the first andsecond cell towers.

A WiFi location determination mode that uses WiFi signals to determinethe location of a user's mobile device may be performed by the mobiledevice listening for signals output by all WiFi networks within an areaand determining a signal strength of the received signals. Based onlocation information of the access points associated with the WiFinetworks for which signals are received by the mobile device and theiraccompanying signal strength, a fairly precise location of the mobiledevice may be obtained, such as in the tens of meters with not muchburden on power consumption of the mobile device. For example, thelocation of each WiFi access point in a network may be stored in adatabase, based on a physical address of a user associated with the WiFiaccess point (e.g., a billing address of the user associated with theWiFi access point), and based on the Internet Protocol (IP) address ofthe WiFi access point that associates a particular user to a particularWiFi access point.

In step 710, initial location information of a user device is receivedby a computing device, which may be the user device itself in someembodiments, or a server on a WAN or LAN working together with the userdevice to determine a location of the user device in the geofenceenvironment in other embodiments. By way of example, the user device,when first powered on, uses the most accurate location determinationscheme that it can support for determining its current location. Themost accurate location determination scheme may be WiFi or GPS-based orBluetooth-based, whereby a GPS-based location determination scheme mayresult in the highest drain of the computing device's battery ascompared to other location determination schemes. By way of example, themobile device may first attempt to poll for a Bluetooth signal, and ifone is not found, attempt to poll for a WiFi signal, and if one is notfound, turn a GPS application ON to attempt to poll for a GPS signal. Insome embodiments, a hierarchy for performing initial locationdetermination of the user device may be to first try to determinelocation using GPS signals, and if that fails (e.g., user device is in alocation that cannot receive GPS signals) to then try to determinelocation using WiFi signals, and if that fails (e.g., user device is ina location that cannot receive WiFi signals) to then try to determinelocation using cellular signals. Additionally, Bluetooth signaling maybe used to determine a location of the user device, such as when initiallocation determination has failed using GPS, WiFi and cellular.

In step 720, based on the initial location information of the userdevice, a location of the user device with respect to a geofenceenvironment is determined. For example, the location of the user devicewith respect to the geofence environment as shown in FIG. 3B isdetermined. The geofence environment may have been set up beforehandusing the user interface displays as shown in FIGS. 9A and 9B, forexample.

Based on the determination of where the user device is located withrespect to a geofence environment that is made in step 720, adetermination is made in step 722 as to whether the user device iscurrently located within the user's home. If the user device isdetermined to be currently located within the user's home (e.g., region373 in FIG. 3B), then in step 724 a low power consumption locationdetermination mode may be used as a first location determination mode,since the user is typically likely to stay in the user's home for someamount of time (e.g., an hour or more after having arrived at home), andhaving a higher power consumption location determination mode may resultin the user having to recharge his or her device fairly frequently orturn the user device off due to battery power level being at a lowlevel, which is undesirable. For example, a GPS location determinationmode having an update or polling rate of once every 20 minutes may beused.

If the result of the determination in step 722 is No, then in step 725,a determination is made as to whether the user device is currentlylocated in a geofence region (e.g., region 363 in FIG. 3B) adjacent tothe user's home. If the result of the determination in step 725 is Yes,then in step 730, a next location determination of the user device isperformed based on a second location determination mode. The nextlocation determination of the user device may be performed apredetermined amount of time after the current location of the userdevice is determined. For example, a GPS update or polling rate of onceper minute may be used, wherein the predetermined amount of timecorresponds to one minute.

If the result of the determination in step 725 is No, then in step 735,a determination is made as to whether the user device is currentlylocated in a geofence region (e.g., region 365 in FIG. 3B) between theinner geofence and the middle geofence. If the result of thedetermination in step 735 is Yes, then in step 740, a next locationdetermination of the user device is performed based on a third locationdetermination mode different from the first and second locationdetermination modes. The next location determination of the user devicemay be performed a predetermined amount of time after the currentlocation of the user device is determined. In some embodiments, thesecond location determination mode may correspond to a faster pollingrate using the same location determination signals (e.g., GPS signals)as the third location determination mode.

If the result of the determination in step 735 is No, then in step 745,a determination is made as to whether the user device is currentlylocated in a geofence region (e.g., region 367 in FIG. 3B) between themiddle geofence and the outer geofence. If the result of thedetermination in step 745 is Yes, then in step 750, a next locationdetermination of the user device is performed based on a fourth locationdetermination mode different from the first, second and third locationdetermination modes. The next location determination of the user devicemay be performed a predetermined amount of time after the currentlocation of the user device is determined. In some embodiments, thethird location determination mode may correspond to a faster pollingrate using the same location determination signals (e.g., GPS signals)as the fourth location determination mode.

If the result of the determination in step 735 is Yes, then in step 755the user device is determined to be currently located in the outergeofence region (e.g., region 369 in FIG. 3B) outside of the outergeofence, and in step 760 a next location determination of the userdevice is performed based on a fifth location determination modedifferent from the first, second, third and fourth locationdetermination modes. The next location determination of the user devicemay be performed a predetermined amount of time after the currentlocation of the user device is determined. In some embodiments, thefifth location determination mode may correspond to a mode that usescellular signals to determine location of a mobile device, whereby thefourth location determination mode may correspond to a mode that usessome type of other location determination signals (e.g., GPS signals, orWiFi signals).

After the next location determination is performed in steps 724, 730,740, 750 and 760, the process returns to step 722 to determine thecurrent location of the user device based on the most recent locationinformation obtained since the last time the location of the user devicewas determined.

Since the user device is closer to his/her home when located in theregion 363 as compared to when the user device is located in the region365, there is a desire to more accurately and more quickly determinewhere the user device is currently located, since typically more actions(e.g., opening of garage door, unlock front door) with respect to thehome 373 are performed when the user device is located in the region 363as compared to when the user device is located in the region 365 (turnON home HVAC system). To this end, the second location determinationmode performed when the user device is located in the region 363 outsidethe home 373 but inside the inner geofence 357 may be more accurate thanthe third location determination mode performed when the user device islocated between the inner geofence 357 and the middle geofence 359, andmay utilize more battery power than the third location determinationmode. Also, since the region 363 next to the home 373 is typically afairly small-sized region in which the user does not typically staywithin very long, it is desirable to update the location determinationof the user device fairly quickly, to determine if the user device hasgone into the home 373 or into an area (e.g., region 365) farther awayfrom the home 373. Thus, the fairly large power consumption used by theuser device to perform location determination when in the region 363 isjustified.

Since the user device is closer to his/her home 373 when located in theregion 365 as compared to when the user device is located in the region367, there is a desire to more accurately and more quickly determinewhere the user device is currently located, since typically more actionswith respect to the home 373 (e.g., turn inside lights ON/OFF, turn HVACON/OFF) are performed the closer the user gets to his/her home 373. Tothis end, the third location determination performed when the userdevice is located between the inner geofence 357 and the middle geofence359 may be more accurate than the fourth location determination modeperformed when the user device is located between the middle geofence359 and the outer geofence 361, whereby the third location determinationmode may utilize more battery power of the user device than the fourthlocation determination mode. Also, since the region 365 is larger thanthe region 363 and smaller than the region 367, it is desirable toupdate location determination of the user device at a rate appropriatefor the size of the region 365, to determine if the user device has goneinto the region 363 closer to the home 373 or into the region 367farther away from the home 373. Thus, the intermediate amount of powerconsumption used by the user device to perform location determinationwhen in the region 365 is justified.

By way of example, the third location determination mode may perform apolling operation of a GPS system at a faster rate than the fourthlocation determination mode, whereby each separate polling of the GPSsystem takes up an amount of battery power of the user device. Also, byway of example, a location determination utilizing GPS typically takesup more battery resources than a location determination using a WiFinetwork or a cellular network (since location determination using a WiFinetwork or a cellular network is typically performed at all times when auser device is turned ON). The fourth location determination may be moreaccurate than the fifth location determination mode, and may utilizemore battery power of the user device than the fifth locationdetermination mode. The fifth location determination mode is performedwhen the user device is located outside of the outer geofence 361,whereby few if any actions with respect to the user's home 373 may occurwhen the user device is located in the region 369 outside of the outergeofence 361, and thus precise location determination of the user deviceis not an important consideration when the user device is far away fromthe home 373. As such, a low battery power cellular locationdetermination mode is an appropriate choice as the fifth locationdetermination mode when the user device is located in the region 369.

The fifth location determination mode used to determine location of theuser device when in the region 369 may correspond to a location modeusing cellular network signals (e.g., signals output by cell towers of acellular network) that uses relatively low battery resources of themobile device. The fourth location determination mode may correspond toa location mode using GPS signals at a first polling rate, the thirdlocation determination mode may correspond to a location mode using GPSsignals at a second polling rate faster than the first polling rate,whereby the third location determination mode uses more batteryresources as compared to the fourth location determination mode. Thesecond location determination mode may correspond to a location modeusing WiFi signals of a WiFi network, or GPS signals at a faster pollingrate than what is used in the third location determination mode, wherebythe second location determination mode uses more battery resources ascompared to the third location determination mode. The first locationdetermination mode may correspond to a location determination mode thatuses very low battery resources of the mobile device (e.g., lower thanany of the other location determination modes). For example, the firstlocation determination mode may correspond to a GPS locationdetermination mode in which the polling rate is very slow, such as every10-20 minutes.

In some aspects, the user's mobile device receiving signals from a homeWi-Fi network may be used to determine whether the user is within orvery close to the user's home 373. For example, in response to adetermination that the location of the user device using a Wi-Fi networkat the user's home 373 (e.g., that the user is connected to the homeWi-Fi network), the computing device may determine that the user deviceis within a predetermined distance from the user's home 373 (e.g., therange of the Wi-Fi network). If the user's home 373 has more than onecommunications network (e.g., a first WiFi network and a second WiFinetwork), each network may be used to determine the user's distance fromthe user's home 373. For example, the user's home 373 may have a Wi-Finetwork and a WiMAX network. When the user device connects to (or isable to detect) the WiMAX network, the computing device may determinethat the user is within a first predetermined distance (e.g., radius)from the user's home 373 (e.g., the user is within 1000 feet of theuser's home for a WiMAX network having a range of 1000 feet), as used asa trigger when the user enters the region 365 inside of the outergeofence 361 but outside of the middle geofence 359. When the userdevice connects to (or is able to connect to) the Wi-Fi network, thecomputing device may determine that the user is within a secondpredetermined distance (e.g., radius) from the user's home 373 (e.g.,100 feet, as used as a trigger when the user enters the geofence region363 that is inside of the inner geofence 357 but outside of the user'shome 373). These distances may vary based on the range of each network.The medium-range wireless networks are not limited to home networks andcan include, for example, a Wi-Fi network at a third party location,such as a coffee shop or department store. The Wi-Fi network at thecoffee shop may also be associated with the provider of the locationservices, streamlining location determination. In some aspects, thecomputing device may alternatively use both first location information(e.g., Bluetooth information) and second location information (e.g.,Wi-Fi information) in combination to determine the user's location.

In some embodiments, the computing device may sequentially use each typeof information until the user's location is determined, based onselection of a location determination mode from a predeterminedhierarchy of candidate location determination modes set for theparticular geofence region that the computing device was most recentlydetermined to be located. Alternatively, the computing device may use acombination of the information (e.g., information from both a GPSnetwork and a WiFi network) to determine the user's location when themobile device is within either the geofence region 363, the geofenceregion 365, or the geofence region 367. The method may be performed byany of the computing devices described herein, including cloud computingdevices, computing devices at the local office 103, computing deviceswithin the location 102, and/or mobile computing devices (e.g., a mobilephone) of FIG. 1.

In some embodiments, when the computing device is determined to belocated either inside of the inner geofence 357 or located outside ofthe inner geofence 357 but inside of the middle geofence 359, thelocation determination scheme may be performed with high accuracy (e.g.,accuracy to within 50 feet) but with relatively high amount power drainon a mobile device's battery, such as high polling rate GPS-basedlocation determination scheme (e.g., location determined based onreceiving GPS signals once every five seconds), or by using alower-power-consumption WiFi location determination scheme if availablein that location. If instead the computing device is determined to belocated outside of the middle geofence 359 but inside of the outergeofence 361, the location determination scheme may be performed withmoderate accuracy (e.g., accuracy from between 100 feet to 200 feet) butwith relatively moderate amount of power drain on the mobile device'sbattery such a low polling rate GPS-based location determination scheme(e.g., location determined based on receiving GPS signals once perminute), or by using a lower-power-consumption WiFi locationdetermination scheme if available in that location. If instead thecomputing device is determined to be located outside of the outergeofence 361, the location determination scheme may be performed withlow accuracy (e.g., 1 to 5 miles accuracy) but with relatively lowamount power drain on the mobile device's battery such a cell towerlocation determination scheme or WiFi if available. This low locationaccuracy may not raise a concern when the computing device is outside ofthe outer geofence 361, since the computing device would be locatedfairly far away from the user's home 373 that is located within theinner geofence 357, in which precise location determination of themobile device is not as important as it would be when the mobile isclose to the user's home 373 or within the user's home 373.

In some embodiments, when the computing device enters the geofenceregion 363 located within the inner geofence 357 but outside of theuser's home 373, this may result in a first triggering event, which maycause the turning on of one or more home appliances such as airconditioning and/or a television set. When the computing device leavesthe region 363 and travels outside of the inner geofence 357 and thusinto the geofence region 365, this may result in a second triggeringevent, which may cause the turning off of the one or more homeappliances and/or the closing of shades on windows of the user's home373.

Various triggering events that may occur according to one or moreembodiments are provided in the table below.

Location Action User leaves home (e.g., Send instruction to gatewaydevice (or other network mobile phone disconnects device) to make theuser's home network visible in from home Wi-Fi network), in the Cloud,allowing the user to access content on the which user moves from homenetwork (e.g., documents, movies, music, etc.) geofence region 363 toand/or save, on the home network, pictures or movies geofence region 365taken from user's mobile phone User leaves home (e.g., Send instructionto update user's call forwarding mobile phone disconnects preferences toforward calls made to home from home Wi-Fi network), in telephone(s) touser's cell phone; send instruction to which user moves from disablecaller ID on STB geofence region 363 to geofence region 365 User entershome (e.g., mobile Send instruction to update user's call forwardingphone connects to home Wi-Fi preferences to disable call forwarding;send network), in which user instruction to enable caller ID on STBmoves from geofence region 365 to geofence region 363 User is in frontof display Send instruction to gateway or STB to generate and/or device(e.g., in living room), display personalized content recommendation foruser within a first geofence based on content marked as favorites,recently subregion within the geofence watched content, accessibilitysettings, and/or other region 363 factors User was previously at aretail Send instruction to a home gateway, STB, or display location orother store within a device to display an advertisement for a product orseparate geofence region and service of the store that user visited(e.g., a J.CREW is currently at home within the coupon or advertisement)geofence region 363 User is outside of the geofence Send message touser's mobile device for user to call region 367 and time is late home(e.g., past 11 pm) User is outside of geofence Send instruction tothermostat in home or other smart region 367 and temperature in homedevice to turn temperature in home up to a home area/neighborhood ispredetermined temperature (e.g., 68 degrees) below freezing (based onweather information retrieved from network location, such as weatherwebsite) A preferred sports team is Send instruction for contentrecording device, such as playing or a favorite television DVR, torecord the program and/or send an alert to show or movie is airing(e.g., user's mobile device that favorite program has started stored inuser's content or is about to start (e.g., 5 minutes before start time)preferences), and user is outside the home (outside of geofence region363)

In some embodiments, the location determination may be performed by aposition location application on the user's mobile device that isrunning in a background mode, in which the location determined by theapplication may be reported to a geofence system provided on a serveraccessible via the Internet, a WAN or a LAN. Based on the determinedlocation of the mobile device, the geofence system determines where theuser's mobile device is positioned with respect to the inner geofence357, the middle geofence 359, and the outer geofence 361, and instructsthe position location application on the user's mobile device as towhich type of location determination to use as described in detailabove.

In some embodiments, the user selects the geofence regions by way of auser interface display. The user may select precise latitude andlongitude coordinates for each of a plurality of geofences, such asconcentric geofences centered around the user's home 373. The user mayfurther select one more triggering events when the user enters and exitseach geofence region. FIG. 9A shows a user interface display 910 thatmay be used by a user to select and define geofence regions, accordingto one or more embodiments. FIG. 9B shows an alternative user interfacedisplay 991 that allows a user to select geofences on a map thatincludes a location of his/her home 992, whereby the user has selectedan inner geofence 993 and an outer geofence 994 that are centered aroundthe user's home 992. FIG. 9C shows yet another alternative userinterface display 991 that corresponds to a map of a region where a userseeks to create a geofence environment around his/her home 992.

In some embodiments, the geofence system may monitor the amount of timethe user dwells in each geofence region over a period of time such as atwo-week or three-week period, and the location determination scheme forone or more of the geofence regions may be dynamically adjusted based onsuch information. By way of example, if the user is determined to belocated within the geofence region 367 for more than two hours a day,the location determination scheme for the geofence region 367 may bechanged from a moderate-power-consumption, moderate location accuracyscheme to a lower-power-consumption, lower location accuracy scheme tosave on battery drain when the user is in that geofence subregion. Byway of example, the location determination scheme may be dynamicallychanged from a GPS polling rate of once every five seconds to a GPSpolling rate of once every minute. In some embodiments, when the currentbattery capacity of the user's mobile device drops below a predeterminedthreshold, such as below 20% full capacity, the location position schememay be automatically changed to the lowest power consumption locationdetermination mode (e.g., using signals from cell towers to determinelocation of mobile device), irrespective as to the current location ofthe mobile device.

FIG. 10 illustrates an example method of dynamically adjusting one ormore geofence regions according to one or more illustrative aspects ofthe disclosure, in which the geofence environment comprises threeseparate geofence regions A, B and C. For example, referring now to FIG.3B, geofence regions A, B and C may correspond to regions 363, 365 and367. In step 1010, the dwell time of the user in each geofence region ismonitored over a period of time. In step 1015, a determination is madeas to whether or not the user has dwelled in geofence region A for atleast X hours over than a predetermined period of time (e.g., has theuser dwelled in region 363 in FIG. 3B for more than two hours over thelast two week period). If Yes, then in step 1020 the locationdetermination mode is changed to the next lower consumption locationdetermination mode. For example, if the current location determinationmode for region 363 is to use GPS signals at a polling rate of onceevery 5 minutes, then the location determination mode for region 363 ischanged to use GPS signals at a polling rate of once every 10 minutes.Each polling operation performed by the user device, in which the userdevice searches for and acquires a GPS signal from one or more GPSsatellites and in which the user device then determines a location ofthe user device based on the just-received GPS signals, takes up acertain amount of battery resources of the user device, whereby a slowerGPS polling rate uses up less battery resources than a faster GPSpolling rate over a same time period in which GPS polling is performed(e.g., for a 10 minute time period, a ‘once per minute’ GPS pollingcorresponds to 10 separate GPS polling and location determinationoperations, whereas a ‘once per 30 seconds’ GPS polling corresponds to20 separate GPS polling and location determination operations that takeup more battery resources due to the 10 extra GPS pollings and locationdeterminations performed by the user device during the same 10 minutetime period).

In step 1025, a determination is made as to whether or not the user hasdwelled in geofence region B for at least X hours over than apredetermined period of time (e.g., has the user dwelled in region 365in FIG. 3B for more than two hours over the last two week period). IfYes, then in step 1030 the location determination mode is changed to thenext lower consumption location determination mode. For example, if thecurrent location determination mode for region 365 is to use GPS signalsat a polling rate of once every 10 minutes, then the locationdetermination mode for region 365 is changed to use GPS signals at anupdate rate of every 15 minutes.

In step 1035, a determination is made as to whether or not the user hasdwelled in geofence region C for at least X hours over than apredetermined period of time (e.g., has the user dwelled in region 367in FIG. 3B for more than two hours over the last two week period). IfYes, then in step 1040 the location determination mode is changed to thenext lower consumption location determination mode. For example, if thecurrent location determination mode for region 367 is to use GPS signalsat a polling rate of once every 15 minutes, then the locationdetermination mode for region 367 is changed to use GPS signals at anupdate rate of every 20 minutes.

After step 1035 and step 1040, the process returns to step 1010 tocontinue monitoring dwell time of the user in the geofence environment(e.g., dwell time monitoring statistics gathered once per day todetermine whether or not any location determination modes in thegeofence regions are to be changed).

In some embodiments, the choice of which location determination mode touse based on a user's current location in a geofence environment may beinitially set by default parameters, such as the scheme described above,whereby the user may modify the location determination schemes for oneor more of the geofence regions. This may be accomplished by way of auser interface to a geofence system on the Internet accessible via a webbrowser of the user's mobile device, in which the user may set anyparticular location determination mode for each geofence region orsub-region in the geofence structure created by the user.

In some embodiments, based on the speed of movement of the user based oncomparison of location determination values obtained consecutively overa period of time, the location determination mode may be changedaccordingly. For example, as described above with respect to anembodiment, when the computing device is determined to be locatedoutside of the middle geofence 359 but inside of the outer geofence 361of FIG. 3B, the location determination mode may be performed withmoderate accuracy (e.g., accuracy from between 100 feet to 200 feet) butwith relatively moderate amount of power drain on the mobile device'sbattery such a low polling rate GPS-based location determination schemebased on receiving WiFi or GPS signals at a predetermined rate. In thisinstance, when the mobile device is determined to be moving at a rate of25 miles per hour or greater, the location determination may beperformed by way of GPS signals received by the mobile device (sinceWiFi is not typically capable of providing location determination for adevice traveling at such a rate of speed), and when the mobile device isdetermined to be moving at a rate of less than 25 miles per hour, thelocation determination may be performed by way of WiFi signals receivedby the mobile device (since WiFi location determination modes typicallycauses less power drain than GPS location determination modes).

In some embodiments, based on the computation of the current location ofthe mobile device with respect to the geofence environment, the mobiledevice may use a different location determination mode when the mobiledevice is determined to have moved from one geofence region to anothergeofence region.

In some embodiments, based on a general location of the geofenceenvironment, such as being within a city or in a suburban location or ina rural location, the geofences may be preset based on defaultparameters associated with a city geofence, a suburban geofence or arural geofence. By way of example, and referring back to FIG. 3B andalso to FIG. 9C, when the geofence environment 355 is located in a city(e.g., based on referring to a database equating zip codes with city,suburban or rural regions) and the geofence environment comprises aninner geofence 357, a middle geofence 359 and an outer geofence 361, thedistances of the middle geofence 359 and the outer geofence 361 withrespect to the inner geofence 357 may be set shorter than theirrespective distances when the geofence environment 355 is located in asuburb. In the same manner, when the geofence environment 355 is locatedin a rural area, the distances of the middle geofence 359 and the outergeofence 361 with respect to the inner geofence 357 may be set largerthan their respective distances when the geofence environment 355 islocated in a suburb. In such a manner, when the user creates the innergeofence 993 and the outer geofence 994 using the map user interfacedisplay 991 of FIG. 9C, the distances of the geofences with respect tothe user's home 992 may be set automatically based on whether the user'shome 992 is located in an urban, suburban, or rural area. That way, thegeofence environment 355 may be set to suit the particular area where itis located, since city environments tend to be more packed together ascompared to suburb environments, and suburb environments tend to be morepacked together than rural environments, and whereby there may typicallybe more WiFi networks available to perform location determination usingWiFi signals when in a city environment as compared to a suburbanenvironment or a rural environment. For example, the distance from auser's home 373 to a grocery store may be much less when the user's home373 is in a city as opposed to when the user's home 373 is in a ruralarea far from a city, and thus the distances typically traveled by auser when in a rural area to go to a grocery store are typically greaterthan the distances typically traveled by a user to go to a grocery storewhen located in a city. The preset distances assigned may be modified bya user via a user interface to a geofence system on the Internet, suchas by the user accessing the geofence system by entering a particularuniform resource location address (URL) via a browser on the user'smobile device, and then changing the preset geofence distance settingsto user-created geofence distance settings. The determination of whethera location is part of a city, suburb or rural area of a region (e.g., acountry) may be made, for example, based on reference to a table thatequates a particular area with either a city, suburb or rural locationbased on latest population numbers obtained for the region.

In some embodiments, based on the amount of time that the user hasdwelled in one or more of the geofence regions, the geofence system mayadjust the size of one or more of the geofence regions to provide moreopportunity for energy savings. By way of example, if location dataobtained from a mobile device by the geofence system over the past twoweeks indicates that the mobile device spends 30% of the time in thegeofence region 367 as shown in FIG. 3B, the geofence system maydynamically change the position of the outer geofence 361 from 4 milesaway from the inner geofence 357 to 3 miles away from the inner geofence357, with the desired goal of achieving less battery drain on the mobiledevice for performing a location determination operation (e.g., turningan antenna ON for a short time period, such as for 1 millisecond everyten seconds, to pick up GPS signals or WiFi signals during that shorttime period).

FIG. 9A shows an example user interface (UI) display 910 provided on auser's mobile device, to enable the user create a geofence environmentaccording to one or more aspects. The UI 910 may include a latitudeentry area 920 and a longitude entry area 930 for the user to enter thelatitude and longitude of the user's home 373 of FIG. 3B. Alternatively,the user may enter an address of the user's home 373 in an address entryarea 940 of the UI 910. The user may then set the radius of the innergeofence 357 in a geofence region radius setting area 950. The UI 910may further include a “register geofence” select button 960 and a“remove geofence” select button 970. While FIG. 9A shows concentriccircles corresponding to the geofences of a geofence environment, theactual geofence boundaries may be defined at will by a user drawing on amap display (e.g., see FIG. 9C), and need not be concentric circles. Forexample, the outermost geofence 994 of FIG. 9C may define the outerboundary of a triangular-shaped region instead of a circular region thatis shown in that figure.

In some embodiments, based on the radius of the inner geofence 357entered via the UI 910 by the user, the geofence application may computean initial radius for the middle geofence 359 and an initial radius forthe outer geofence 361. In some embodiments, in a geofence radiusinitialization mode, once the radius of the inner geofence 357 is set bythe user, such as to a value of 300 feet, the initial radius of themiddle geofence 359 and the initial radius of the outer geofence 361 maybe automatically set based on the following equations:middle geofence radius=inner geofence radius+R miles  (1)outer geofence radius=middle geofence radius+T miles  (2)By way of example and not by way of limitation, R may be set equal to avalue between 0.2 miles and 1 mile, and T may be set equal to a valuebetween 2 miles and 10 miles.

Once the initial radiuses are computed, the application may optimizethese radiuses based on information gathered of a user's time spent atvarious locations of the geofence environment 355, to obtain a greateramount of power savings for mobile device location determination. Insome embodiments, in a geofence radius optimization mode, the radius ofthe middle geofence 359 and the radius of the outer geofence 361 may beautomatically set based on the following equations:middle geofence radius=expectation of speed*V minutes  (3)outer geofence radius=middle geofence radius+5 miles  (4)

By way of example and not by way of limitation, V may be set equal to 5minutes (e.g., V=1/12 hour, where ‘expectation of speed’ is expressed inmiles/hour).

By way of example, if in the past few weeks information is gathered thatindicates that the user drives 60 miles per hour going back home 80% ofthe time and the user drives 40 miles per hour going back home 20% ofthe time on a Friday, and if today is a Friday, then the outer geofenceradius and the outer geofence radius may be optimized to the followingvalues:middle geofence radius=(60*0.8+40*0.2)*5 minutes=4.67 milesouter geofence radius=4.67 miles+5 miles=9.67 miles

The value of R used in equation (1) may be set equal to 0.5 miles, whichmay be obtained due to a likely scenario of a user driving at a rate of35 mph in his or her neighborhood while close to home (typicalneighborhood speed limit), to thereby cause a triggering event to occurbased on the user crossing the middle geofence 359 about 1 minute or soprior to the user arriving at the user's home 373. The value of T usedin equation (2) may be set equal to 5 miles, and may be obtained basedon a typical cellular signal tower error range when cellular signals areused to determine a user's location when outside of the outer geofence361. The value of R in equation (1) and the value of T in equation (2)may be optimized based on typical driving speeds of a user when drivinghome and the particular cellular network used in the region where theuser's home 373 is located. In the above example, 4.67 miles correspondsto a middle geofence radius that a user crosses when about 5 minutesfrom the user's home 373 while driving, and the 9.67 miles correspondsto an outer radius that a user crosses when about 10 minutes from theuser's home 373 while driving. Each of those geofence crossings mayresult in a particular triggering event to occur at the user's home 373,such as the turning on of a home heating and air conditioning systemwhen the outer geofence 361 is crossed, and the opening of the user'sgarage door when the middle geofence 359 is crossed.

FIG. 9B shows an example UI display 980 that may be provided to the useron his or her mobile device when in the geofence environment 355,according to one or more aspects. Referring also to FIG. 3B, when theuser has entered the geofence region 363 that is outside of the user'shome 373, the user may be provided with a notification 985 of such entryinto the geofence region 363, and the time when the entry occurred.Similarly, the user may be provided with a notification on the display980 of entry into other geofence regions, such as entry into thegeofence region 365 and entry into the geofence region 367. Stillfurther, user may be provided with a notification on the display of boththe geofence region that the user has entered, as well as the geofenceregion that the user has exited (e.g., ‘mobile device has entered thegeofence region 367 from the geofence region 369’, or ‘mobile device hasentered the geofence region 367 from the geofence region 365’). Thedisplay 980 may also provide notifications as to how the mobile deviceis connected, such as a notification 990 that the mobile device isconnected as a media device, whereby the notification 990 may allow theuser to change the connectivity as desired (e.g., connected as a storagedevice, connected as a pointer device, connected as a digital camera).The notifications may be textual or audible, or both.

FIG. 9C shows an example UI map display 991 that may be used to create ageofence environment that includes an inner geofence 993 and an outergeofence 994 that surround a user's home 992 on First Street.

Referring now to FIG. 3B and FIG. 9A, a user may set the radius of theinner geofence 357 via the UI display 910, which is shown in the exampleas 500 feet. Based on the user-defined radius of the inner geofence 357,the radius of the middle geofence 359 and the radius of the outergeofence 361 may be determined, as will be described in more detailbelow.

In some embodiments, as will be described in more detail below, theuser's mobile device has three modes of operation: a) an entry mode(where a WiFi location application and a cellular location applicationon the mobile device are always ON) when the mobile device is moving ina direction toward the home, b) a dwelling mode when the mobile deviceis within the home, and c) a departure mode when the mobile device ismoving in a direction away from the home. For example, with reference toFIG. 7, when the mobile device has been determined to have moved fromwithin the home (Y in step 725) to a location within the inner geofencenext to the home (Y in step 725) for two consecutive locationdeterminations, then the mobile device operates in the departure mode.When the mobile device has been determined to have moved from a locationbetween the inner and middle geofences (Y in step 735) to a locationwithin the inner geofence next to the home (Y in step 725) for twoconsecutive location determinations, then the mobile device operates inthe entry mode. And when the mobile device has been determined to belocated within the home (Y in step 722), the mobile device operates inthe dwelling mode.

In some embodiments, the user's mobile device has WiFi and cellularsignaling turned ON at all times while the user's mobile device is ON,since a WiFi location determination mode and a cellular locationdetermination mode utilize much less battery power than a GPS locationdetermination mode and thus may be kept ON without concern about causingmajor drain on the battery of the user's mobile device.

A description of what types of location determination are performed by amobile device when the mobile device is located in different regions ofa geofence system are described below in detail.

In some embodiments, with reference to FIG. 3B, FIG. 7 and FIG. 11, whenthe user device was most recently determined to be located in the outerregion 369 a first location determination mode may be used to determinea current location of the user device (Y in step 770 of FIG. 11 and step760 of FIG. 7), whereby the user device may first attempt to determineits location using WiFi (see step 771 of FIG. 11). If WiFi networksignals can be picked up when the mobile device is located in the outerregion 369, then that method of determining a current location of theuser device may be used, since performing location determination usingWiFi network signals consumes relatively low power resources andprovides relatively accurate location determination for the user'smobile device. By way of example, the user's mobile device detects theWiFi access points within its network range and their respective signalstrengths, and obtains a location of each detected WiFi access pointfrom a WiFi access point location database that may be accessible via aserver on the Internet, or via a database stored in a memory of theuser's mobile device. The location of a WiFi access point may be thestreet address of the user who owns the WiFi access point, for example.Based on the location of each detected WiFi access point signal and thecorresponding signal strength of each detected signal, an overlappingarea of two or more WiFi access point network ranges may be determinedas the current location of the user's mobile device. If only one WiFiaccess point is detected by the mobile device, then the current locationof the mobile device may be determined to be the same as the location ofthe WiFi access point. If no WiFi network signals are detected when theuser's mobile device is in the outer region 369, the user's mobiledevice may determine its location using relatively low accuracy cellularsignals output from cell towers (see step 771 of FIG. 11). Thistypically provides a location of between 1 to 5 miles, but consumes asmall amount of battery power of the user's mobile device, making it agood candidate for location determination when the user's mobile deviceis far away from the user's home 373. If neither cellular nor WiFisignals are available, then GPS signals are used at a slow update rateto determine a current location of the user device (see step 771 of FIG.11). In some embodiments in which GPS location determination alsooperates at a very slow polling rate when the user's mobile device wasmost recently determined to be located in the outer region 369, acombination of WiFi network signals (if available), GPS signals, andcell tower signals may be used to determine a current location of theuser's mobile device, whereby this combination may still result inrelatively low power drain on the battery of the user's mobile device.

when the user's mobile device enters the region 367 from the outerregion 369 as part of the entry mode of operation (Y in step 773 of FIG.11), and thus moves from outside to inside the outer geofence 361 asecond location determination mode may be used (Y in step 772 of FIG. 11and step 750 of FIG. 7). With reference to step 774 of FIG. 11, themobile device may first attempt to determine its current location usingWiFi, if available, in the same manner as it did when the mobile devicewas located in the outer region 369. If WiFi is available, then the GPSapplication on the mobile device may be kept OFF (or kept ON with a veryslow polling rate such as 10 to 20 minutes for embodiments in which GPSwas ON when the mobile device was in the outer region 369). If WiFi isunavailable in the region 367, then the mobile device may then turn theGPS application ON and attempt to determine its current location usingGPS location information obtained from a GPS network of globalpositioning satellites. When using GPS information while located withinthe region 367, the mobile device may perform GPS polling at arelatively slow rate, such as a polling rate in a range of from everyfive (5) minutes to every eight (8) minutes, to lessen the amount ofbattery power drain of the mobile device. Since the mobile device islocated fairly far away from the user's home 373 and thus quick updatesof the location of the mobile device are not necessary, the fairly longamount of time between consecutive mobile device location determinationsis not a concern.

When the user's mobile device enters the region 365 from the region 367as part of the entry mode of operation (Y in step 776 of FIG. 11)), andthus moves from outside to inside the middle geofence 359 a thirdlocation determination mode may be used (Y in step 775 of FIG. 11 andstep 740 of FIG. 7). With reference to step 777 of FIG. 11, the mobiledevice may first attempt to determine its current location using WiFi,if available, in the same manner as it did when the mobile device waslocated in the outer-middle region 367. If WiFi is available, the GPSapplication on the mobile device may be turned ON and operates at apolling rate of between 5 to 8 minutes. If the GPS application waspreviously ON and operating with a polling rate in a range of from everyfive (5) minutes to every eight (8) minutes when in the outer-middleregion 367, the GPS application may operate with the same polling ratewhen in the inner-middle region 365.

If WiFi is unavailable in the region 365, the mobile device may thenturn the GPS application ON and attempt to determine its currentlocation using GPS location information obtained from a GPS system. Whenusing GPS information while located within the region 365, the mobiledevice may perform GPS polling at a fast rate, such as in a polling ratein the range of from every five (5) seconds to every ten (10) seconds,which is faster than the polling rate of 5 to 8 minutes when the mobiledevice was located in the region 367. This is due to the mobile devicebeing located closer to the user's home 373, whereby a more preciselocation of the mobile device may be calculated to determine when atriggering event or notification is to be made. Also, by having a fastGPS polling rate of every five (5) seconds to every ten (10) seconds,the moment when the user crosses inside the inner geofence 357 may bedetected within a few seconds by location determination of the mobiledevice using GPS signals, and a notification may be sent to the user(e.g., ‘you are now inside the geofence) and a triggering event (e.g.,garage door opened up) occur as a result of the user crossing inside theinner geofence 357.

When the user's mobile device enters the region 363 from the region 365as part of the entry mode of operation (Y in step 779 of FIG. 11), andthus moves from outside to inside the inner geofence 357 but stilloutside of the user's home 373 a fourth location determination mode maybe used (Y in step 778 of FIG. 11 and step 730 of FIG. 7). The mobiledevice may first attempt to determine its current location using WiFi,if available, in the same manner as it did when the mobile device waslocated in the region 365 and in the region 367. If WiFi is available,the GPS application on the mobile device may be turned OFF (or kept OFFis already OFF). If WiFi is unavailable in the inner region 363, thenthe mobile device may then turn the GPS application ON and attempt todetermine its current location using GPS location information obtainedfrom a GPS system. When using GPS information while located within theinner region 363, the mobile device may perform GPS polling at a fastrate, such as in a polling rate in the range of from every five (5)seconds to every 10 seconds, whereby this fast GPS updating rate may bekept on for up to a predetermined time period, such as for one (1) totwo (2) minutes, or until the mobile device is determined to havearrived at the user's home 373, whichever comes first.

When the mobile device enters the user's home 373 a fifth locationdetermination mode may be used (step 781 of FIG. 11). The entry into theuser's home may be detected by either detecting a WiFi ‘home’ signal ifWiFi is available, or by detecting that the mobile device is close(e.g., 100 feet) to the home address when using a GPS system due to WiFiunavailability. While in the user's home 373, as shown by step 783 ofFIG. 11 when the mobile device has not been dwelling in the home 373 fora long period of time (e.g., less than 20 minutes), the mobile devicemay attempt to determine its current location using WiFi, if available.If WiFi is available, the GPS application on the mobile device may beturned OFF. If WiFi is unavailable in the user's home 373, then themobile device may then turn the GPS application ON and attempt todetermine its current location using GPS location information obtainedfrom a GPS system. While located within the user's home 373, a slowerGPS polling rate, such as in a range of from every 5 minutes to every 10minutes, may be used to lessen the amount of battery drain on the mobiledevice, since it is likely that the user will stay at the user's home373 for at least some amount of time, and thus a faster GPS polling rateas when used in the region 363 is not necessary. If at any time WiFibecomes available when the mobile device is within the user's home 373,the GPS application on the mobile device may be turned OFF. If WiFi isdetermined to be unavailable after the mobile device has been in theuser's home 373 for over a predetermined amount of time, such as forover 15 to 20 minutes, the GPS polling rate may be changed to a slowrate, such as a polling rate of every 15 to 20 minutes, to result in avery low power drain on the mobile device due to the mobile devicelikely to stay in the user's home 373 for some additional amount oftime.

After the mobile device has entered the user's home 373 and has beenthere for more than a predetermined amount of time, such as for morethan 20 minutes, the mobile device may switch from the entry mode ofoperation to the dwelling mode of operation (Y in step 782 of FIG. 11).In the dwelling mode of operation, if the mobile device is determined tohave stayed within the user's home 373 for more than a predeterminedamount of time, such as for more than 20 minutes, the mobile device andthus the user presumably carrying the mobile device is presumed to be“dwelling” at the user's home 373, and a dwelling event or notificationmay be triggered. This dwelling event may cause, for example, the lightsto turn on in the user's home 373 and/or the television set in theliving room of the user's home 373 to turn on in some embodiments. Inother embodiments, the dwelling event may result in output of a messageto the user on the user's mobile device regarding whether or not theuser wants those actions to occur, thereby requiring an affirmativeaction by the user to cause those actions to occur. While in thedwelling mode of operation, as shown by step 784 of FIG. 11, the mobiledevice may attempt to determine its current location using WiFi, ifavailable. If WiFi is available, the GPS application on the mobiledevice may be turned OFF. If WiFi is unavailable in the user's home 373,then the mobile device may then turn the GPS application ON and attemptto determine its current location using GPS location informationobtained from a GPS system, but with a fairly slow polling rate, such asa polling rate in the range of once every 15 to 20 minutes. This slowupdate rate is used since the mobile device and thus the user is assumedto be “dwelling” at the user's home 373, and is likely not to leave theuser's home 373 any time soon.

When the mobile device is detected to be leaving the user's home 373,the mobile device switches from the dwelling mode of operation (or theentry mode of operation if the user has not stayed at the user's home373 for a long period of time) to the departure mode of operation. Thedetection of the mobile device leaving the user's home 373 may be aresult of the mobile device no longer receiving a WiFi ‘home’ signal ifWiFi is available at the user's home 373, or by detecting that themobile device is at least a certain distance (e.g., 100 feet) from thehome address when using a GPS system for location determination whenWiFi is unavailable. When in the region 363, the second locationdetermination mode may be used (Y in step 778 of FIG. 11 and step 730 ofFIG. 7). With reference to step 785 of FIG. 11, the mobile device mayattempt to determine its current location using WiFi, if available. IfWiFi is available, the GPS application on the mobile device may beturned OFF. If WiFi is unavailable when in the inner region 363, thenthe mobile device may turn the GPS application ON and attempt todetermine its current location using GPS location information obtainedfrom a GPS system, with a fast polling rate, such as an polling rate inthe range of once every 5 to 10 seconds.

When the mobile device is detected to have crossed from inside tooutside the inner geofence 357, then a departure event or notificationmay be triggered. This departure event may cause, for example, thelights to turn off in the user's home 373 and/or the television set inthe living room to turn off (if not already off).

After the mobile device has crossed from inside to outside the innergeofence 357, the third location determination may be used (Y in step775 of FIG. 11, and step 740 of FIG. 7). With reference to step 786 ofFIG. 11, the mobile device may attempt to determine its current locationusing WiFi, if available. If WiFi is available, the GPS application onthe mobile device may be turned OFF. If WiFi is unavailable, then themobile device may then turn the GPS application ON and attempt todetermine its current location using GPS location information obtainedfrom a GPS system, with a fast polling rate, such as a polling rate inthe range of once every 5 to 10 seconds. In some embodiments, the fastpolling rate may be maintained for up to a predetermined amount of time(e.g., 1 to 2 minutes), and then the GPS application may be turned OFFif the mobile device is determined to have not crossed from outside toinside the inner geofence 357 during that predetermined amount of time.If the mobile device is determined to have crossed from outside toinside the inner geofence 357 and back into the region 363, then themobile device enters the “entry mode of operation” as described above.If WiFi is unavailable and the mobile device is determined to havestayed in the region 363 for a time period between a first predeterminedamount of time and a second predetermined amount of time, such as for anamount of time between 5 minutes and 2 hours, the obtaining of GPS datamay be changed from a fast polling rate of every 5 to 10 seconds to aslow polling rate of every 10 to 15 minutes. This due to the likelihoodthat the mobile device may dwell in the inner region 363 for a fairlylong period of time, and thus a faster GPS polling rate that would causea high drain on the mobile phone's battery would typically not provideany measurable benefit due to the likely lack of significant movement ofthe mobile device. Similarly, if WiFi is unavailable and the mobiledevice is determined to have stayed in the inner region 363 for a longtime period, such as for an amount of time longer than 8 hours, GPS maybe turned OFF or the obtaining of GPS data may be performed at a veryslow polling rate, such as a polling rate of once every 45 minutes toonce every hour.

After the mobile device has crossed from inside to outside the middlegeofence 359 to enter region 367, and thus is in the departure mode, thesecond location determination may be used (Y in step 772 of FIG. 11, andstep 750 of FIG. 7). With reference to step 787 of FIG. 11, the mobiledevice performs the same location determination procedures as describedabove with respect to step 774 when the mobile device was in the entrymode while in region 367.

As described above, based on where the mobile device is currentlylocated with respect to the geofence environment 355 (e.g., within thehome as in step 722 of FIG. 7, within the inner geofence but not in thehome as in step 725 of FIG. 7, etc.), the GPS update rate may beoptimized to provide location determination suitable for that region,while at the same time saving on battery drain of the mobile device. Forexample, when the mobile device is located fairly far away from theuser's home 373 and thus precise location determination of the mobiledevice is not that important, GPS may be turned OFF or GPS may be turnedON with a very slow polling rate (e.g., once every 10 to 20 minutes), tolessen the amount of drain on the mobile device's battery caused by theGPS taking a lot of power when operational. Similarly, when the mobiledevice is a moderate distance from the user's home 373, such as withinthe outer geofence 361 but outside the middle geofence 359, GPS may beturned OFF if WiFi is available to save on battery drain of the mobiledevice, or if WiFi is unavailable, the GPS polling rate may be performedat a moderate rate that is faster than the rate used when the mobiledevice is located farther away from the user's home 373. Further, whenthe mobile device is located very close to the user's home 373, such aswithin the middle geofence 359 or within the inner geofence 357 but notyet at the user's home 373, GPS may be turned OFF if WiFi is availableto save on battery drain of the mobile device, or if WiFi isunavailable, the obtaining of GPS data may be performed at a fastpolling rate that is faster than the moderate polling rate used when themobile device is located a moderate distance from the user's home 373,since quickly detecting when the mobile device crosses inside the innergeofence 357 and thus the causing of a notification of triggering eventto occur quickly after that detection takes precedence over batterydrain of the mobile device.

In some embodiments, based on where the mobile device is currentlylocated with respect to the geofence environment 355 (e.g., outside theouter geofence 361, between the outer geofence 361 and the middlegeofence 359, or inside the middle geofence 359 but outside the innergeofence 357), a combination of different location determination modesmay be used, such as using GPS and WiFi when in the region between theinner and middle geofences, to provide an appropriate locationdetermination mode to use for the mobile device based on whether it isfairly far from to the user's home 373, a moderate distance away fromthe user's home 373, or fairly close to the user's home 373, while atthe same time providing optimization with respect to resultant batterydrain of the mobile device when at those locations.

In some embodiments, based on user inputted data and/or informationobtained from recent travels by the user with respect to the user's home373, the user may be determined to be walking to or from the user's home373, biking to or from the user's home 373, or driving to or from theuser's home 373, and the radiuses of the outer geofence 361, the middlegeofence 359, and the inner geofence 357 may be optimized accordinglybased on the typical speeds associated with those different modes oftravel. By way of example, if the user typically rides a bicycle to andfrom work on a Tuesday, then the ‘expectation of speed’ value inequation (3) may be set to 15 miles per hour, and if the user typicallywalks to work on a Thursday, the ‘expectation of speed’ value inequation (3) may be set to 5 miles per hour.

Also, in some embodiments, the 5 mile value used in equation (4) abovemay be changed based on the expected mode of travel for the user on aparticular day of the week, whereby the 5 mile value may be lowered to 2miles when the user is biking to the user's home 373, or to 0.5 mileswhen the user is walking to the user's home 373. In some embodiments,based on the rate of speed of travel of the user in either the entrymode of operation of the departure mode of operation, the distances ofthe inner geofence 357, the middle geofence 359 and the outer geofence361 may be changed based on that information. For example, if the speedof travel of the user is determined to be between 10 to 15 miles perhour, which makes it like that the user is using a bicycle, then theouter geofence 361 may be moved to 10 miles away from the middlegeofence 359 instead of using the 5 miles value in equation (4) above,and whereby the ‘expectation of speed’ value used in equation (3) aboveto determine the distance of the middle geofence 359 with respect to theinner geofence 357 would be the ‘calculated speed’ value of, say, 12miles per hour.

Also, if the speed of travel of the user is determined to be between 5to 6 miles per hour, which makes it likely that the user is walking toand from the user's home 373, then the outer geofence 361 may be movedto 20 miles away from the middle geofence 359 instead of using the 5miles value in equation (4) above, and whereby the ‘expectation ofspeed’ value used in equation (3) above to determine the distance of themiddle geofence 359 with respect to the inner geofence 357 would be the‘calculated speed’ value of, say, 5 miles per hour.

In some aspects, with reference to FIG. 3B, FIG. 6 and FIG. 10, thecomputing device may track the amount of time that a user has been at aparticular location (see, for example, step 1010 of FIG. 10). Forexample, the primary user may be a father, and one of the secondaryusers may be his son. The father may set up his profile to keep track ofthe amount of time his son has spent at a particular location, such asthe living room in front of the television or a gaming console. Thefather may be periodically notified of the amount of time his son spendsin front of the TV or notified when the son spends more than apredetermined amount of time within the geofence region 365 or withinthe geofence region 367 as shown in FIG. 3B.

In some embodiments, the notifications sent to the user's mobile devicewhen the user crosses either inside or outside the inner geofence 357,the middle geofence 359 and the outer geofence 361 during a first two orthree weeks of use of the geofence system may not be sent to the user'smobile device if the user has consistently approved an action based on anotification. For example, if each time during a past two week periodthe user has accepted a turning on of a heating system in the user'shome 373 due to a notification sent to the user when the user hascrossed inside the middle geofence 359 and into the geofence region 365,the geofence system may automatically turn on the heating system in theuser's home 373 for all future times the user crosses inside the middlegeofence 359 and into the geofence region 365. The user may provide asetting via the UI 980 of FIG. 9B to allow such automated actions tooccur or not occur in some embodiments (such that an affirmative useraction to a notification sent to the user is required to cause an actionsuch as turning on the heating system in the user's home 373).

In some embodiments, based on the user's historic behavior over apredetermined period of time in the recent past, such as the last 3weeks, location determination modes in the various geofence regions maybe modified based on the user's historic behavior. For example, if theuser crosses inside the middle geofence 359 at a certain time of the daybut does not cross inside the inner geofence 357 until much later after(e.g., 3 hours later), and if the user does this action for threeconsecutive Fridays, then the user's historic behavior is that the userdoes not typically go straight to the user's home 373 after crossinginside the middle geofence 359, but rather does something else, such asgoing to a nearby friend's house for a few hours before then going tothe user's home 373. Based on the user's historic behavior, forsucceeding Fridays, the geofence system may modify the GPS polling rateto every 2 to 3 minutes if WiFi is unavailable from the ‘default’ GPSpolling rate of every 5 to 8 seconds, since it is unlikely that the useris going straight to the user's home 373 based on the user's pastbehavior. As such, it is not necessary to quickly detect that the userhas crossed the inner geofence 357 (which would cause a notificationand/or triggering event to occur), since the user is unlikely to begoing straight to user's home 373, and thus power drain on the batteryof the user's mobile phone may be lessened by using a slower GPS pollingrate based on the user's historic behavior when the user has crossedinside the middle geofence 359. As another example, if a user goes backand forth from inside the user's home 373 to just outside the user'shome 373 and into the region 363 several times in a short time period(e.g., three times or more in time frame of two hours or less), theseentry/exit events may not result in a notification being output to theuser each time this occurs. This may happen when the user is cooking ona grill on a deck outside the user's home 373, for example. In thisscenario, based on the recent logged activity of the user with respectto movement in and out of the user's home 373, the region 363 justoutside the user's home 373 may be considered part of the user's home373 in this instance, in which a notification is not pushed to theuser's mobile device in these instances (but if the user passes tooutside the inner geofence 357, a notification to the user and/ortrigger event may result).

The various features described above are merely non-limiting examples,and can be rearranged, combined, subdivided, omitted, and/or altered inany desired manner. For example, features of the computing device(including the remote control device and the terminal device) describedherein can be subdivided among multiple processors and computingdevices. The true scope of this patent should only be defined by theclaims that follow.

I claim:
 1. A method comprising: determining, based on one or moreuser-defined boundaries that were input via a mobile device, a geofenceenvironment that comprises a target region and a first geofencesurrounding the target region; storing information indicating aplurality of polling rates comprising: a first polling rate associatedwith locations outside the first geofence, a second polling rateassociated with locations inside the first geofence but outside thetarget region, and a third polling rate for locations inside the targetregion; determining, based on the information and a current location ofthe mobile device, a polling rate from the plurality of polling rates;and using the determined polling rate to determine a next location ofthe mobile device.
 2. The method of claim 1, wherein: the first pollingrate is lower than the second polling rate; the second polling rate isgreater than the first polling rate and the third polling rate; and thethird polling rate is lower than the second polling rate.
 3. The methodof claim 1, further comprising determining a power consumption rate ofthe mobile device, for use in determining the next location of themobile device, that is based on the information.
 4. The method of claim1, wherein the information indicates: a first power consumption rateassociated with locations outside the first geofence; a second powerconsumption rate, higher than the first power consumption rate,associated with locations inside the first geofence but outside thetarget region; and a third power consumption rate associated withlocations inside the target region.
 5. The method of claim 1, whereinthe determined polling rate is also determined based on a time spent atthe current location.
 6. The method of claim 1, further comprisingdecreasing the determined polling rate as a time spent at the currentlocation increases.
 7. The method of claim 1, wherein the first geofencecomprises a non-circular boundary.
 8. The method of claim 1 furthercomprising determining a location determination mode, available to themobile device, for determining the current location of the mobiledevice.
 9. The method of claim 1, further comprising determining thecurrent location of the mobile device via one or more of: a globalpositioning system (GPS) location determination mode, a wirelessfidelity (WiFi) location determination mode, or a cell tower locationdetermination mode.
 10. The method of claim 1, further comprising:causing display of a map; and receiving, via the map, user inputdefining the one or more boundaries.
 11. The method of claim 1, whereinthe one or more user-defined boundaries are defined based on auser-defined radius that was input via the mobile device.
 12. The methodof claim 1, wherein the information further indicates: a first homeautomation operation associated with locations outside the firstgeofence, a second home automation operation associated with locationsinside the first geofence but outside the target region, or a third homeautomation operation associated with locations inside the target region.13. The method of claim 12, wherein the information further indicates ahome automation operation that comprises one or more of the following:an operation for a set-top-box (STB), an operation for a home securitysystem, an operation for a television, an operation for a thermostat, anoperation for a light, or an operation for a door of a home.
 14. Amethod comprising: determining, based on receiving one or moreuser-defined boundaries input via a mobile device, a geofenceenvironment that comprises a target region and a first geofencesurrounding the target region; storing information indicating aplurality of power consumption rates comprising: a first powerconsumption rate associated with locations outside the first geofence, asecond power consumption rate associated with locations inside the firstgeofence but outside the target region, and a third power consumptionrate associated with locations inside the target region; determining,based on the information and a current location of a mobile device, apower consumption rate from the plurality of power consumption rates;and using the power consumption rate to determine a next location of themobile device.
 15. The method of claim 14, wherein: the first powerconsumption rate is lower than the second power consumption rate; thesecond power consumption rate is higher than the first power consumptionrate and the third power consumption rate; and the third powerconsumption rate is lower than the second power consumption rate. 16.The method of claim 14, further comprising using a polling rate, basedon the current location, to determine the next location of the mobiledevice.
 17. The method of claim 14 further comprising: causing displayof a map on the mobile device, wherein the map comprises a location ofthe target region; and receiving, via the mobile device, user input viathe displayed map.
 18. A method comprising: determining, based ondetermining a current location of a mobile device, a first geofence thatsurrounds the current location, wherein the first geofence comprises auser-defined boundary that was input via the mobile device; storinginformation indicating: a first polling rate associated with locationsinside the first geofence; and a second polling rate associated withlocations outside of the first geofence; and selecting, based on theinformation and the current location, the first polling rate or thesecond polling rate to determine a next location of the mobile device.19. The method of claim 18, further comprising: causing display of amap; and receiving, via the map, user input defining the boundary of thefirst geofence.
 20. The method of claim 18, wherein the boundarycomprises a radius.
 21. The method of claim 18, further comprising:determining, based on the determining the current location of the mobiledevice, a second geofence that surrounds the first geofence and anintermediate region outside the first geofence but inside the secondgeofence; wherein the information further indicates a third polling rateassociated with the intermediate region; and wherein the selectingcomprises: selecting, based on the information and the current location,the first polling rate, the second polling rate, or the third pollingrate to determine the next location of the mobile device.